8

我正在使用一个简单的适配器来显示我的代码。不幸的是,我需要更改顶部的 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

4 回答 4

18

您必须从 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;
        };
    };
于 2013-07-30T07:37:22.980 回答
1

为您的项目创建自定义 xml 布局并使用属性ListView设置文本颜色:TextViewtextColor

<TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView"
            android:textColor="#ff0000" />
于 2013-07-30T07:32:20.023 回答
0

If you use a Spinner dropdown text color will not change. To change we must also add the above method the method 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; 
             }
于 2014-09-16T21:15:04.377 回答
-1

你应该使用setTextColor(Color.any color);

TextView txt = (TextView) view.findViewById(R.id.text1);
txt.setTextColor(Color.yellow);
于 2013-07-30T08:20:08.410 回答