android TextView: definir a cor de fundo dinamicamente não funciona
Pergunta
Como definir a cor de fundo de programação de um TextView
android não parece trabalho.
Estou me faltando alguma coisa!
TextView et = new TextView(activity);
et.setText("350");
et.setBackgroundColor(R.color.white);
Eu também tenho esta imagem (colors.xml) em meus res / valores pasta ??p>
<resources>
<color name="white">#ffffffff</color>
<color name="black">#ff000000</color>
</resources>
[EDIT]: Além disso, definir a cor do texto faz com que o TextView a desaparecer.
TextView c1 = new TextView(activity);
c1.setTextColor(R.color.solid_red);
c1.setText("My Text");
Solução
Use et.setBackgroundResource(R.color.white);
Outras dicas
Tente isto:
TextView c1 = new TextView(activity);
c1.setTextColor(getResources().getColor(R.color.solid_red));
c1.setText("My Text");
Eu concordo que uma cor e um recurso têm o mesmo tipo, mas eu também passar algumas horas para encontrar esta solução.
Para definir a cor vermelha:
textView.setBackgroundColor(0xfff00000);
ou
<color name="solid_red">#fff00000</color>
textView.setBackgroundResource(R.color.solid_red);
Eu tive um problema semelhante onde eu estava criando uma cor numérico sem considerar o principal canal alfa. ie. mytext.setTextColor(0xFF0000)
(pensando que este seria vermelho). Embora esta seja uma cor vermelha também é 100% transparente como it = 0x00FF0000;
O valor correto opaca 100% é 0xFFFF0000
ou mytext.setTextcolor(0xFFFF0000)
.
Apenas este 1 linha de código mudou o fundo programaticamente
tv.setBackgroundColor(Color.parseColor("#808080"));
Bem, eu tive situação quando o serviço web retornou uma cor em formato hexadecimal, como "# CC2233" e eu queria colocar essa cor em textView usando setBackgroundColor (), então eu usei android classe de cores para obter o valor int de barbante hex e o passou a função mencionada. Tudo funcionou. Este é um exemplo:
String myHexColor = "#CC2233";
TextView myView = (TextView) findViewById(R.id.myTextView);
myView.setBackGroundColor(Color.pasrsehexString(myHexColor));
P.S. postou esta resposta porque outras soluções não funcionou para mim. Espero que isso vai ajudar alguém:)
Aqui estão os passos para fazê-lo corretamente:
-
Em primeiro lugar, declarar uma instância de TextView na sua MainActivity.java da seguinte forma:
TextView mTextView;
-
Set alguns DINAMICAMENTE texto (se você quiser) como segue:
mTextView.setText("some_text");
-
Agora, para definir a cor de fundo, você precisa definir sua própria cor no> valores-> colors.xml arquivo res- da seguinte forma:
<resources> <color name="my_color">#000000</color> </resources>
-
Agora você pode usar a cor "my_color" em seu arquivo java para definir o plano de fundo dinamicamente como segue:
mTextView.setBackgroundResource(R.color.my_color);
tv.setTextColor(getResources().getColor(R.color.solid_red));
aqui é no pequeno detalhe,
se você estiver em uso atividade este
textview.setBackground(ContextCompat.getColor(this,R.color.yourcolor));
se você estiver em uso fragmento de código abaixo
textview.setBackground(ContextCompat.getColor(getActivity(),R.color.yourcolor));
Se você está no uso do adaptador recyclerview código abaixo
textview.setBackground(ContextCompat.getColor(context,R.color.yourcolor));
// use holder.textview if you are in onBindviewholder
//here context is passed from fragment
Color.parseHexColor("17ee27")
não funcionou para mim, em vez Color.parseColor("17ee27")
funcionou perfeitamente.
duas maneiras de fazer isso:
cor 1.Criar no arquivo colors.xml como:
<resources>
<color name="white">#ffffff</color>
</resources>
e usá-lo int classe java atividade como:
et.setBackgroundResource(R.color.white);
2.
et.setBackgroundColor(getResources().getColor(R.color.white));
or
et.setBackgroundColor(Color.parseColor("#ffffff"));
Se você gostaria de apoiar todas as versões, faça o seguinte:
myTextView.setBackgroundColor (ContextCompat.getColor (este, R.color.mycolor));
uso Jut
ArrayAdapter<String> adaptername = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, your array list);
Você pode usar android:textColor= "
qualquer cor texto u quer dar" no arquivo xml onde sua exibição de texto é declarada.