如何更改列表视图文本颜色?

时间:2012-08-03 10:38:35

标签: android listview

有人可以帮我改变列表视图的文字颜色而不使用任何基础适配器。我已经使用android.R.layout.simple_list_item_single_choice来显示选项按钮,但默认情况下,列表视图中的文本显示为白色我需要将其更改为黑色。有没有办法在不使用自定义适配器的情况下将文本更改为黑色。我已经粘贴了用于创建带有选项按钮的列表视图的代码。enter image description here

  ListView lvCheckBox = (ListView)findViewById(R.id.lvCheckBox);
            save = (ImageView)findViewById(R.id.button1);
            lvCheckBox.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
            lvCheckBox.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_single_choice, values));

6 个答案:

答案 0 :(得分:1)

只需更改ListView项的默认布局

即可

而不是:

adapter = new ArrayAdapter<String>(this, android.R.layout.simple_listview_item, list);

使用

adapter = new ArrayAdapter<String>(this, R.layout.customLayout, list);

和customLayout.xml:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/listTextView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="@color/black"
    android:textSize="20dp" />

答案 1 :(得分:0)

enter image description here

使用此代码。

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.custom_spinner_textview_layout, from);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerAlarmTone.setAdapter(adapter);

Xml LayoutFile

< ?xml version="1.0" encoding="utf-8"?>
<TextView 
  xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/text1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textSize="16.0sp" 
    android:textColor="@color/black"
    android:gravity="left"/>

答案 2 :(得分:0)

您可以使用由textview组成的自定义xml文件,而不是默认android.R.layout.simple_list_item_single_choice,并将此xml文件传递给ArrayAdapter。通过这种方式,您可以轻松更改textview颜色。但我仍然建议您选择自定义适配器以获得更大的灵活性。

答案 3 :(得分:0)

是的!你是对的,我试过你的代码。 默认情况下,它还会显示白色背景和Textcolor。当我们按它显示文本因为选择器颜色。所以我们可以看到它。我接受上述答案。但我们只能在特定部分进行定制。无需创建单独的布局或Textview。

ListView lvCheckBox = (ListView)findViewById(R.id.lvCheckBox);
                save = (ImageView)findViewById(R.id.button1);
    lvCheckBox.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

    lvCheckBox.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice, values) {
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                CheckedTextView checkedTxtView = (CheckedTextView) super.getView(position, convertView, parent);

                String yourValue = values.get(position);
                checkedTxtView.setText(yourValue);
                checkedTxtView.setTextColor(this.getResources().getColor(android.R.color.black));
                return textView;
            }

    });

我创建了示例hello world项目并尝试了这个。这个对我有用。我希望它能帮助你完成任务。

还有一件事,你需要CheckedTextView,所以你使用的是android.R.layout.simple_list_item_single_choice。如果按照上面的一些示例创建自定义布局,则必须在这些自定义布局设计中使用CheckedTextView。因为,在上面的例子中,他们只使用了简单的textview。所以要小心。

答案 4 :(得分:0)

您可以使用自定义选择器,例如,列表视图:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"    +
 android:drawable="@drawable/listitem_pressed" />
<item android:state_focused="true" android:drawable="@drawable/listitem_selected" />
 </selector>

参考: Another Ask

答案 5 :(得分:-1)

一个解决方案是你将listview的背景颜色改变为黑色,你的文字会自动变为可见。 或者您必须在列表视图上设置自定义适配器。 当您为自定义布局充气时,您可以根据需要设置textview颜色。