Ответ 1
Используйте et.setBackgroundResource(R.color.white);
Настройка фонового цвета программно из андроида 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");
Используйте et.setBackgroundResource(R.color.white);
Попробуйте следующее:
TextView c1 = new TextView(activity);
c1.setTextColor(getResources().getColor(R.color.solid_red));
c1.setText("My Text");
Я согласен, что цвет и ресурс имеют один и тот же тип, но я также потрачу несколько часов, чтобы найти это решение.
Чтобы установить красный цвет:
textView.setBackgroundColor(0xfff00000);
или
<color name="solid_red">#fff00000</color>
textView.setBackgroundResource(R.color.solid_red);
У меня была аналогичная проблема, когда я создавал числовой цвет, не учитывая ведущий альфа-канал. то есть. mytext.setTextColor(0xFF0000)
(думая, что это будет красным). Хотя это красный цвет, он также на 100% прозрачен как it = 0x00FF0000;
Правильное 100% непрозрачное значение 0xFFFF0000
или mytext.setTextcolor(0xFFFF0000)
.
У меня была ситуация, когда веб-служба возвращала цвет в шестнадцатеричном формате, например "# CC2233", и я хотел поместить этот цвет в textView с помощью setBackGroundColor(), поэтому я использовал класс цвета android для получения значения int шестнадцатеричной строки и передал его упомянутой функции. Все сработало. Это пример:
String myHexColor = "#CC2233";
TextView myView = (TextView) findViewById(R.id.myTextView);
myView.setBackGroundColor(Color.pasrsehexString(myHexColor));
P.S. опубликовал этот ответ, потому что другие решения не сработали для меня. Надеюсь, это поможет кому-то:)
Только эта 1 строка кода программно изменила фон
tv.setBackgroundColor(Color.parseColor("#808080"));
tv.setTextColor(getResources().getColor(R.color.solid_red));
Color.parseHexColor("17ee27")
не работал у меня, вместо этого Color.parseColor("17ee27")
работал отлично.
Использование Jut
ArrayAdapter<String> adaptername = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, your array list);
Вот как это сделать:
Прежде всего, объявите экземпляр 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);
два способа сделать это:
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"));
Если вы хотите поддерживать все версии, сделайте следующее:
myTextView.setBackgroundColor(ContextCompat.getColor(это, R.color.mycolor));
здесь подробно,
если вы работаете в этом режиме,
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
вы можете использовать android:textColor= "
любой цвет текста, который хотите дать "в xml файле, где объявлено ваше текстовое представление.