1

也许已经说过很多次了,我很抱歉,但是搜索所有网络并不能帮助我找到解决方案。我必须从字符串数组中创建一个 ListView,但我希望每一行的文本颜色都发生变化,例如,如果字符串包含“黄色”字,则文本的颜色将为黄色。我怎样才能设置这样的东西?

4

3 回答 3

1

创建一个 HashMap,键为颜色词,值为整数。

示例代码:

    HashMap<String, Integer> colorCode = new HashMap<String, Integer>();
    colorCode.put("Red", Color.parseColor("Red"));
    // put all pre-defined color in map

    tv.setTextColor(colorCode.get("your color word"));
于 2013-09-30T15:16:18.617 回答
1

您可以像这样实现一个简单的适配器并使用它来填充 ListView

    public class MySimpleStringAdapter extends ArrayAdapter<String> {


        public MySimpleStringAdapter (Context context, int textViewResourceId, List<String> objects) {
            super(context, textViewResourceId, objects);
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
         String myString = getItem(position);
            //check your string
            //Change the color as you want
            //((TextView)convertView).setTextColor();
        }
    }

在主课上

MySimpleStringAdapter  mySimpleNewAdapter = new MySimpleStringAdapter (context,textViewResourceId,stringList);
listView.setAdapter(mySimpleNewAdapter );
于 2013-09-30T18:36:35.017 回答
0

使用 Java 的最新版本,您可以对 String 值执行 switch 语句,因此在每种情况下都打开 string 和 setBackgroundColor

于 2013-09-30T15:05:36.010 回答