未显示ListView项目
问题描述:
我在自定义对话框中有一个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();
}
答
在列表视图中设置文字颜色没有效果,你需要设置它从布局,你传递给TextView的适配器。或者,您可以更改对话框布局或对话框主题的背景颜色。
答
基于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;
}
};