我正在使用一个简单的适配器来显示我的代码。不幸的是,我需要更改顶部的textView颜色。
这是我的代码片段:
// Keys used in Hashmap
String[] from = { "txt1", "txt2" };
// Ids of views in listview_layout
int[] ids = { android.R.id.text1, android.R.id.text2 };
SimpleAdapter adapter = new SimpleAdapter(this, aList,
android.R.layout.simple_list_item_2, from, ids);
setListAdapter(adapter);
我尝试制作自己的simple_list_item_2,但由于某些原因,我不允许在xml中更改textView的颜色。关于如何做到这一点的任何想法?
我最后的想法是:
findViewById(android.R.id.text1).setTextColor(#000)
但我不知道放在哪里,我的十六进制代码不起作用。
答案 0 :(得分:17)
你必须从SimpleAdapter覆盖getView。例如:
SimpleAdapter adapter = new SimpleAdapter(this, aList,
android.R.layout.simple_list_item_2, from, ids) {
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView text1 = (TextView) view.findViewById(android.R.id.text1);
text1.setTextColor(Color.RED);
return view;
};
};
答案 1 :(得分:1)
为ListView
项创建自定义xml布局,并使用TextView
属性设置textColor
的文字颜色:
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:textColor="#ff0000" />
答案 2 :(得分:0)
如果您使用Spinner下拉列表,则文本颜色不会更改。要改变我们还必须在方法getDropDownView上添加上面的方法。
public View getDropDownView (int position, View convertView, ViewGroup parent) {
View view = super.getDropDownView (position, convertView, parent);
TextView text = (TextView) view.findViewById (android.R.id.text1);
text.setTextColor (Color.BLACK);
return view;
}
答案 3 :(得分:-1)
您应该使用setTextColor(Color.any color);
TextView txt = (TextView) view.findViewById(R.id.text1);
txt.setTextColor(Color.yellow);