установка цвета текста в пользовательском массиве-адаптере - PullRequest
1 голос
/ 22 декабря 2011

Я пытаюсь установить цвет TextView в пользовательском адаптере массива, но он не работает - я получаю текст серого цвета вместо зеленого.

Я пытался установитьЦвет текстового представления по умолчанию в row.xml, но он также не имел никакого эффекта.

public class ReadCustomAdapter extends ArrayAdapter<ReadModel>{

    public ReadCustomAdapter(Activity a, int textViewResourceId, ArrayList<ReadModel> entries) {
        super(a, textViewResourceId, entries);
        this.entries = entries;
        this.activity = a;
    }

    public static class ViewHolder{
        public TextView item1;
        public TextView item2;
    }


    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = convertView;
        ViewHolder holder;
        if (v == null) {
            LayoutInflater vi =
                (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.row, null);
            holder = new ViewHolder();
            holder.item1 = (TextView) v.findViewById(android.R.id.text1);
            holder.item2 = (TextView) v.findViewById(android.R.id.text2);             
            v.setTag(holder);
        }
        else
            holder=(ViewHolder)v.getTag();

        final ReadModel custom = entries.get(position);

        if (custom != null) {
            holder.item1.setText(custom.getNick());
            holder.item2.setText(custom.getMsg());

            holder.item1.setTextColor(R.color.green);

        }
        return v;
    }

}

color.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="green">#00ff00</color>
</resources>

Ответы [ 2 ]

2 голосов
/ 22 декабря 2011

setTextColor() ожидает целое число цвета (0xFF00FF00 в вашем случае), но вы предоставляете ему идентификатор ресурса этого цвета, который может быть любым числом.1003 *

holder.item1.setTextColor(0xFF00FF00);

или как это:

holder.item1.setTextColor(getResources().getColor(R.color.green));
0 голосов
/ 14 декабря 2016

Вы можете использовать из @ color / my_value, установленного в values ​​/ colors.xml, вот так;

...