更改android.R.layout.simple_list_item_2中的文本颜色

时间:2013-07-30 07:29:07

标签: java android xml simpleadapter

我正在使用一个简单的适配器来显示我的代码。不幸的是,我需要更改顶部的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)但我不知道放在哪里,我的十六进制代码不起作用。

4 个答案:

答案 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);