TextView setTextColor() не работает
Я программно создаю список (нет ListView, просто добавляя их к родительскому) таких элементов:
<LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:layout_weight="1">
<TextView android:id="@+id/filiale_name"
android:layout_width="fill_parent" android:layout_height="wrap_content"/>
<TextView android:id="@+id/lagerstand_text"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:textSize="10sp" android:textColor="@color/red"/>
</LinearLayout>
кроме того, я определил некоторые цвета в значения цветов.XML. Как вы видите, TextView с идентификатором "lagerstand_text"по умолчанию имеет красный цвет. Эта работа.
при создании элементов в Java, я делаю
lagerstandText.setText("bla");
и для некоторых элементов также я делаю
lagerstandText.setTextColor(R.color.red);
и другие цвета. В то время как элементы, на которые я не звоню setTextColor () красные, все остальные серые, независимо от того, какой цвет я выбрал (даже если это тот же красный снова).
почему это?
5 ответов:
документация не очень подробно об этом, но вы не можете использовать только целое число R. color при вызове
setTextColor
. Вам нужно позвонитьgetResources().getColor(R.color.YOURCOLOR)
для правильной настройки цвета.используйте следующее, Чтобы установить цвет вашего текста программно:
textView.setTextColor(getResources().getColor(R.color.YOURCOLOR));
начиная с библиотеки поддержки 23 Вы должны использовать следующий код, потому что getColor является устаревшим:
textView.setTextColor(ContextCompat.getColor(context, R.color.YOURCOLOR));
таким образом, есть много способов для достижения этой задачи.
1.
int color = Integer.parseInt("bdbdbd", 16)+0xFF000000); textview.setTextColor(color);
2.
textView.setTextColor(getResources().getColor(R.color.some_color));
3.
textView.setTextColor(0xffbdbdbd);
4.
textView.setTextColor(Color.parseColor("#bdbdbd"));
5.
textView.setTextColor(Color.argb(a_int, r_int, g_int, b_int));
для дальнейшего использования, вы можете использовать следующие:
String color = getString(Integer.parseInt(String.valueOf(R.color.my_color))); my_textView.setTextColor(Color.parseColor(color));
таким образом, вы можете использовать цветовые ресурсы.
1.стандартный цвет у предпочитает пожалуйста идет с ниже .
textview.setTextColor(Color.select_color)
2.здесь хотите использовать custwom color добавить его в цвет.xml-файл
textview.setTextColor(getResources().getColor(R.color.textbody));
или
textView.setTextColor(Color.parseColor("#000000"));
или
subText.setTextColor(Color.rgb(255,192,0));
целочисленный идентификатор для определенного цвета (определенного в XML-макете), определенный в
R
класс не может быть передана в качестве параметраsetTextColor()
методView
класса. Вы должны получить параметрsetTextColor()
по следующей строке кода:int para=getResources().getColor(R.color.your_color,null); view.setTextColor(para,null);
метод
getColor(int id)
опустился...вместо этого используйтеgetColor(int id,Resources.Theme theme)
в строке кода выше.The `second parameter( theme )` can be null