Android Textview: die Hintergrundfarbe Einstellung funktioniert nicht dynamisch

StackOverflow https://stackoverflow.com/questions/1466788

  •  13-09-2019
  •  | 
  •  

Frage

Zur Einstellung der Hintergrundfarbe programmatisch einen Androiden TextView scheint nicht zu funktionieren. Ich bin ich etwas fehlt!

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

Ich habe auch diese Datei (Colors.xml) in meinem res / Werten Ordner

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

[EDIT]: Auch die Einstellung der Textfarbe bewirkt, dass die Textview verschwinden.

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

Lösung

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

Andere Tipps

Versuchen Sie folgendes:

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

Ich bin damit einverstanden, dass eine Farbe und eine Ressource die gleiche Art, aber ich verbringe auch ein paar Stunden, um diese Lösung zu finden.

rote Farbe ein:

textView.setBackgroundColor(0xfff00000);

oder

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

textView.setBackgroundResource(R.color.solid_red);

Ich hatte ein ähnliches Problem, bei dem ich ohne Berücksichtigung des führenden Alphakanales eine numerische Farbe wurde zu schaffen. dh. mytext.setTextColor(0xFF0000) (denken würde dies rot sein). Dies ist zwar eine rote Farbe ist es auch 100% transparent wie it = 0x00FF0000; Der richtige 100% lichtundurchlässig Wert 0xFFFF0000 oder mytext.setTextcolor(0xFFFF0000) ist.

Nur diese 1 Zeile Code programmatisch den Hintergrund geändert

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

Nun, ich hatte Situation, wenn Web-Service eine Farbe in Hex-Format wie „# CC2233“ zurück, und ich wollte auf Textview diese Farbe setzen, indem Sie setBackgroundColor (), so dass ich verwenden android Color-Klasse int Wert von Hex-String zu erhalten und reichte es erwähnte Funktion. Alles funktionierte. Dies ist Beispiel:

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

P. S. diese Antwort geschrieben, weil andere Lösungen nicht für mich arbeiten. Ich hoffe, das jemand helfen:)

Hier sind die Schritte, um es richtig zu tun:

  1. Zu allererst eine Instanz von Textview in Ihrem MainActivity.java erklärt, wie folgt:

    TextView mTextView;
    
  2. Sie Text Set DYNAMISCH (wenn Sie möchten) wie folgt:

    mTextView.setText("some_text");
    
  3. Nun, die Hintergrundfarbe zu setzen, müssen Sie Ihre eigene Farbe in der res-> Werte-> Colors.xml Datei wie folgt definieren:

    <resources>
        <color name="my_color">#000000</color>
    </resources>
    
  4. Sie können nun „my_color“ Farbe in Ihre Java-Datei verwenden, um die Hintergrund dynamisch wie folgt festzulegen:

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

Hier ist in kleinen Detail,

Wenn Sie in der Aktivität Gebrauch sind diese

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

Wenn Sie in Fragmente Verwendung unter Code sind

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

Wenn Sie in recyclerview Adapter Verwendung unter Code sind

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") funktioniert nicht für mich, sondern Color.parseColor("17ee27") funktionierte perfekt.

zwei Möglichkeiten, das zu tun:

1.Erstellen Farbe in Colors.xml Datei wie:

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

und verwenden Sie es int Aktivität Java-Klasse wie:

et.setBackgroundResource(R.color.white);

2.

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

Wenn Sie möchten, dass alle Versionen unterstützen, dies tun:

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

Jut verwenden

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

Sie können android:textColor= " verwenden, was auch immer die Textfarbe u „in XML-Datei geben möchten, wo Ihre Textansicht deklariert wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top