Domanda

Impostazione del colore di sfondo di un programatically TextView Android non sembra funzionare. Mi sto perdendo qualcosa!

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

Ho anche questo file (colors.xml) nei miei res / valori cartella

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

[EDIT]: Inoltre, l'impostazione del colore del testo fa sì che il TextView a scomparire.

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

Soluzione

Usa et.setBackgroundResource(R.color.white);

Altri suggerimenti

Prova questo:

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

Sono d'accordo che un colore e una risorsa hanno lo stesso tipo, ma anche trascorrere un paio d'ore per trovare questa soluzione.

Per impostare il colore rosso:

textView.setBackgroundColor(0xfff00000);

o

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

textView.setBackgroundResource(R.color.solid_red);

Ho avuto un problema simile in cui creavo un colore numerico senza considerare il canale principale alfa. vale a dire. mytext.setTextColor(0xFF0000) (pensando questo sarebbe rosso). Mentre questo è un colore rosso è anche trasparente al 100% come it = 0x00FF0000; Il valore corretto opaco 100% è 0xFFFF0000 o mytext.setTextcolor(0xFFFF0000).

Proprio questa 1 riga di codice cambiato lo sfondo di programmazione

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

Beh ho avuto situazione in cui il servizio Web ha restituito un colore in formato esadecimale come "# CC2233" e ho voluto mettere questo colore su textView utilizzando setBackGroundColor (), quindi ho usato classe Color Android per ottenere il valore int di stringa esadecimale e passò alla funzione menzionato. Tutto ha funzionato. Questo è l'esempio:

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

P.S. postato questa risposta perché altre soluzioni non ha funzionato per me. Spero che questo vi aiuterà qualcuno:)

Questi sono i passi da fare in modo corretto:

  1. Prima di tutto, dichiarare un'istanza di TextView nel vostro MainActivity.java come segue:

    TextView mTextView;
    
  2. Imposta qualche testo in modo dinamico (se volete) come segue:

    mTextView.setText("some_text");
    
  3. Ora, per impostare il colore di sfondo, è necessario definire il proprio colore nella>> colors.xml file di RES- VALORI nel seguente modo:

    <resources>
        <color name="my_color">#000000</color>
    </resources>
    
  4. È ora possibile utilizzare il colore "my_color" nel file java per impostare lo sfondo in modo dinamico nel seguente modo:

    mTextView.setBackgroundResource(R.color.my_color);
    
tv.setTextColor(getResources().getColor(R.color.solid_red));

qui è in piccolo dettaglio,

se si è in uso attività di questo

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

se si è in uso frammento di sotto codice

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

se si è in uso l'adattatore recyclerview sottostante codice

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") non ha funzionato per me, invece Color.parseColor("17ee27") ha funzionato perfettamente.

due modi per farlo:

colore 1.Creare nel file di colors.xml come:

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

e utilizzarlo int classe di attività Java come:

et.setBackgroundResource(R.color.white);

2.

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

Se si desidera supportare tutte le versioni, fare questo:

myTextView.setBackgroundColor (ContextCompat.getColor (questo, R.color.mycolor));

Jut utilizzare

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

è possibile utilizzare android:textColor= " qualunque sia il colore del testo u vuole dare" nel file XML in cui viene dichiarata la visualizzazione del testo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top