TextView setTextColor () nie działa

Programowo tworzę listę (bez ListView, tylko dodaję je do rodzica) takich elementów:

    <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>

Zdefiniowałem również niektóre kolory w values / colors.xml. Jak widzisz, TextView o id "lagerstand_text" domyślnie ustawił kolor na czerwony. To działa.

Podczas tworzenia elementów w Javie wykonuję

lagerstandText.setText("bla");

I dla niektórych elementów również robię

lagerstandText.setTextColor(R.color.red);

I inne kolory. Podczas gdy elementy, na których nie wywołuję setTextColor () są czerwone, wszystkie inne są szare, bez względu na kolor, który wybrałem(nawet jeśli to znowu ten sam czerwony).

Dlaczego?
Author: didi_X8, 2011-05-30

5 answers

Dokumentacja nie jest zbyt gadatliwa na ten temat, ale nie można używać tylko liczby całkowitej R. color podczas wywoływania setTextColor. Aby poprawnie ustawić kolor, musisz wywołać getResources().getColor(R.color.YOURCOLOR).

Użyj poniższego, aby programowo ustawić kolor tekstu:

textView.setTextColor(getResources().getColor(R.color.YOURCOLOR));

Zaczynając od biblioteki wsparcia 23 musisz użyć następującego kodu, ponieważ getColor jest przestarzały:

textView.setTextColor(ContextCompat.getColor(context, R.color.YOURCOLOR));
 193
Author: Sunil Kumar Sahoo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-30 11:50:28

Istnieje więc wiele sposobów na osiągnięcie tego zadania.

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));
 31
Author: duggu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-19 14:55:12

W przyszłości możesz użyć następującej opcji:

String color = getString(Integer.parseInt(String.valueOf(R.color.my_color)));
my_textView.setTextColor(Color.parseColor(color));

W ten sposób możesz wykorzystać swoje zasoby kolorów.

 1
Author: Chad Mx,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-29 16:00:39

1.standardowy kolor preferujesz, przejdź poniżej .

textview.setTextColor(Color.select_color)

2.tutaj chcesz użyć koloru custwom dodaj go w Kolorze.plik xml

textview.setTextColor(getResources().getColor(R.color.textbody));

Lub

textView.setTextColor(Color.parseColor("#000000"));

Lub

subText.setTextColor(Color.rgb(255,192,0));
 1
Author: sneha v,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-19 16:46:38

Integer id dla określonego koloru(zdefiniowanego w układzie xml) zdefiniowanego w klasie R nie może być przekazany jako parametr do metody setTextColor() klasy View. Musisz uzyskać parametr setTextColor() w następującej linijce kodu:

int para=getResources().getColor(R.color.your_color,null);
view.setTextColor(para,null);

Metoda getColor(int id) została zamortyzowana...zamiast tego użyj getColor(int id,Resources.Theme theme) jak w linii kodu powyżej.

The `second parameter( theme )` can be null
 0
Author: Abhi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-05 09:52:02