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