2017-09-26 172 views
1

我在自定義對話框中有一個ListView。未顯示ListView項目

當我運行應用程序時,視圖顯示的數組適配器中的項目的行數是正確的。

但是顯示的行是空白的。

我已經嘗試在ListView中設置文本顏色爲黑色無濟於事。

android:textColor="#000000" 
    android:textSize="20sp" 
    android:textStyle="bold" 

如果我向視圖中添加10個項目,則會顯示10個空白行。 我添加了一個TextView到佈局,並正確顯示。

XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

<ListView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/listView"> 

</ListView> 

</LinearLayout> 

我的代碼:

public class CustomDialog extends DialogFragment { 

private ArrayAdapter<String> adapter ; 

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    // Get the layout inflater 
    LayoutInflater inflater = getActivity().getLayoutInflater(); 

    View dialogView = 
    // Inflate and set the layout for the dialog 
    // Pass null as the parent view because its going in the dialog layout 
     inflater.inflate(R.layout.custom_dialog, null); 


    ArrayList<String> listItems = new ArrayList<>(); 

    listItems.add("test list item"); 

    adapter = new ArrayAdapter<String>(getActivity().getApplicationContext(), android.R.layout.simple_list_item_1, listItems); 

    ListView listView = (ListView) dialogView.findViewById(R.id.listView); 

    // Here, you set the data in your ListView 
    listView.setAdapter(adapter); 


    builder.setView(dialogView) 
      // Add action buttons 
      .setPositiveButton("Select", new ...    }) 
      .setNegativeButton("Cancel", new ...    }); 

    return builder.create(); 
} 

回答

1

在列表視圖中設置文字顏色沒有效果,你需要設置它從佈局,你傳遞給TextView的適配器。或者,您可以更改對話框佈局或對話框主題的背景顏色。

0

基於Crispert的迴應,我添加以下代碼:

這是從另一個發現蘇答案在這裏: Android ListView Text Color

 adapter=new ArrayAdapter<String>(getActivity().getApplicationContext(), 
      android.R.layout.simple_list_item_1, listItems) { 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      View view =super.getView(position, convertView, parent); 

      TextView textView=(TextView) view.findViewById(android.R.id.text1); 

     /*YOUR CHOICE OF COLOR*/ 
      textView.setTextColor(Color.BLUE); 

      return view; 
     } 
    };