android TextView:dynamic设置背景颜色不起作用

以编程方式设置一个Android 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> 

[编辑]:另外,设置文本颜色导致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"); 

我同意颜色和资源具有相同的types,但我也花了几个小时来find这个解决scheme。

设置红色:

 textView.setBackgroundColor(0xfff00000); 

要么

 <color name="solid_red">#fff00000</color> textView.setBackgroundResource(R.color.solid_red); 

我有一个类似的问题,我创build一个数字颜色,而不考虑领先的alpha通道。 即。 mytext.setTextColor(0xFF0000) (认为​​这是红色的)。 虽然这是一个红色,它也是100%透明的,因为it = 0x00FF0000; 正确的100%不透明值是0xFFFF0000mytext.setTextcolor(0xFFFF0000)

那么我有情况时,Web服务返回一个hex格式,如“#CC2233”的颜色,我想通过使用setBackGroundColor()把这个颜色在textView,所以我使用Android Color类获取hexstring的int值,并将其传递给上述function。 一切正常。 这是例子:

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

PS发布了这个答案,因为其他解决scheme不适合我。 我希望这会帮助别人:)

只有这一行代码以编程方式改变了背景

 tv.setBackgroundColor(Color.parseColor("#808080")); 
 tv.setTextColor(getResources().getColor(R.color.solid_red)); 

Color.parseHexColor("17ee27")没有为我工作,而是Color.parseColor("17ee27")完美工作。

以下是正确执行此操作的步骤:

  1. 首先,在MainActivity.java中声明一个TextView的实例,如下所示:

     TextView mTextView; 
  2. DYNAMICALLY(如果你想)设置一些文本,如下所示:

     mTextView.setText("some_text"); 
  3. 现在,要设置背景颜色,您需要在res-> values-> colors.xml文件中定义自己的颜色,如下所示:

     <resources> <color name="my_color">#000000</color> </resources> 
  4. 现在,您可以在您的java文件中使用“my_color”颜色来dynamic设置背景,如下所示:

     mTextView.setBackgroundResource(R.color.my_color); 

突然使用

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

两种方式来做到这一点:

1.在colors.xml文件中创build颜色,如:

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

并使用它作为int活动Java类为:

 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 

你可以在声明文本视图的xml文件中使用android:textColor= "你想给的任何文本颜色”。