列表视图项目未显示

时间:2017-09-26 17:24:11

标签: android listview android-alertdialog customdialog

我在自定义对话框中有一个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();
}

2 个答案:

答案 0 :(得分:1)

在列表视图中设置textColor无效,您需要在传递给适配器的布局中在TextView中设置它。或者,您可以更改对话框布局或对话框主题的背景颜色。

答案 1 :(得分:0)

根据Crispert的回应,我添加了以下代码:

这是从另一个SO答案中找到的: 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;
        }
    };