Android TextView: настройка фонового цвета динамически не работает

Настройка фонового цвета программно из андроида TextView не работает. Я что-то пропустил!

TextView et = new TextView(activity);
et.setText("350");
et.setBackgroundColor(R.color.white);

У меня также есть этот файл (colors.xml) в папке res/values ​​

<resources>
        <color name="white">#ffffffff</color>
        <color name="black">#ff000000</color>
</resources>

[EDIT]: Кроме того, установка цвета текста приводит к исчезновению TextView.

TextView c1 = new TextView(activity);
c1.setTextColor(R.color.solid_red);
c1.setText("My Text");

Ответ 1

Используйте et.setBackgroundResource(R.color.white);

Ответ 2

Попробуйте следующее:

TextView c1 = new TextView(activity);
c1.setTextColor(getResources().getColor(R.color.solid_red));
c1.setText("My Text");

Я согласен, что цвет и ресурс имеют один и тот же тип, но я также потрачу несколько часов, чтобы найти это решение.

Ответ 3

Чтобы установить красный цвет:

textView.setBackgroundColor(0xfff00000);

или

<color name="solid_red">#fff00000</color>

textView.setBackgroundResource(R.color.solid_red);

Ответ 4

У меня была аналогичная проблема, когда я создавал числовой цвет, не учитывая ведущий альфа-канал. то есть. mytext.setTextColor(0xFF0000) (думая, что это будет красным). Хотя это красный цвет, он также на 100% прозрачен как it = 0x00FF0000; Правильное 100% непрозрачное значение 0xFFFF0000 или mytext.setTextcolor(0xFFFF0000).

Ответ 5

У меня была ситуация, когда веб-служба возвращала цвет в шестнадцатеричном формате, например "# CC2233", и я хотел поместить этот цвет в textView с помощью setBackGroundColor(), поэтому я использовал класс цвета android для получения значения int шестнадцатеричной строки и передал его упомянутой функции. Все сработало. Это пример:

String myHexColor = "#CC2233";
TextView myView = (TextView) findViewById(R.id.myTextView);
myView.setBackGroundColor(Color.pasrsehexString(myHexColor));

P.S. опубликовал этот ответ, потому что другие решения не сработали для меня. Надеюсь, это поможет кому-то:)

Ответ 6

Только эта 1 строка кода программно изменила фон

tv.setBackgroundColor(Color.parseColor("#808080"));

Ответ 7

tv.setTextColor(getResources().getColor(R.color.solid_red));

Ответ 8

Color.parseHexColor("17ee27") не работал у меня, вместо этого Color.parseColor("17ee27") работал отлично.

Ответ 9

Использование Jut

ArrayAdapter<String> adaptername = new ArrayAdapter<String>(this,
            android.R.layout.simple_dropdown_item_1line, your array list);

Ответ 10

Вот как это сделать:

  • Прежде всего, объявите экземпляр TextView в свой MainActivity.java следующим образом:

    TextView mTextView;
    
  • Установите текст DYNAMICALLY (если хотите) следующим образом:

    mTextView.setText("some_text");
    
  • Теперь, чтобы установить цвет фона, вам необходимо определить свой собственный цвет в файле res- > values- > colors.xml следующим образом:

    <resources>
        <color name="my_color">#000000</color>
    </resources>
    
  • Теперь вы можете использовать цвет my_color в вашем java файле для динамического изменения фона следующим образом:

    mTextView.setBackgroundResource(R.color.my_color);
    

Ответ 11

два способа сделать это:

1.создайте цвет в файле colors.xml, например:

<resources>
        <color name="white">#ffffff</color>
</resources>

и использовать его int activity java class как:

et.setBackgroundResource(R.color.white);

2.

et.setBackgroundColor(getResources().getColor(R.color.white));
                or
et.setBackgroundColor(Color.parseColor("#ffffff"));

Ответ 12

Если вы хотите поддерживать все версии, сделайте следующее:

myTextView.setBackgroundColor(ContextCompat.getColor(это, R.color.mycolor));

Ответ 13

здесь подробно,

если вы работаете в этом режиме,

textview.setBackground(ContextCompat.getColor(this,R.color.yourcolor));

если вы используете фрагмент ниже кода

textview.setBackground(ContextCompat.getColor(getActivity(),R.color.yourcolor));

если ваш адаптер ain recyclerview используется ниже кода

textview.setBackground(ContextCompat.getColor(context,R.color.yourcolor));

// use holder.textview if you are in onBindviewholder
//here context is passed from fragment

Ответ 14

вы можете использовать android:textColor= " любой цвет текста, который хотите дать "в xml файле, где объявлено ваше текстовое представление.