web-dev-qa-db-ja.com

android TextView:背景色の動的な設定が機能しない

Android TextViewの背景色をプログラムで設定しても機能しないようです。私は何かが欠けています!

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

また、res/valuesフォルダーにこのファイル(colors.xml)があります

<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");
157
Tawani

et.setBackgroundResource(R.color.white);を使用します

310
bhatt4982

これを試して:

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

色とリソースが同じタイプであることに同意しますが、この解決策を見つけるのに数時間も費やします。

71
Seb DA ROCHA

赤い色を設定するには:

textView.setBackgroundColor(0xfff00000);

または

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

textView.setBackgroundResource(R.color.solid_red);
62
Dmitry

主要なアルファチャンネルを考慮せずに数値の色を作成する場合、同様の問題がありました。すなわち。 mytext.setTextColor(0xFF0000)(これは赤だと思う)。これは赤色ですが、it = 0x00FF0000;としても100%透明です。正しい100%の不透明な値は0xFFFF0000またはmytext.setTextcolor(0xFFFF0000)です。

18
badMonkey

この1行のコードだけで、プログラムでバックグラウンドが変更されました

tv.setBackgroundColor(Color.parseColor("#808080"));
8
Vivek Warde

Webサービスが "#CC2233"のような16進形式で色を返し、setBackGroundColor()を使用してこの色をtextViewに配置したかったため、Android Colorクラスを使用してint値を取得しました16進数の文字列を指定の関数に渡します。すべてがうまくいきました。これは例です:

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

追伸他の解決策がうまくいかなかったので、この回答を投稿しました。これが誰かを助けることを願っています:)

7
user1252459

正しく実行する手順は次のとおりです。

  1. まず、MainActivity.JavaでTextViewのインスタンスを次のように宣言します。

    TextView mTextView;
    
  2. 次のようにいくつかのテキストを動的に(必要に応じて)設定します。

    mTextView.setText("some_text");
    
  3. ここで、背景色を設定するには、次のようにres-> values-> colors.xmlファイルで独自の色を定義する必要があります。

    <resources>
        <color name="my_color">#000000</color>
    </resources>
    
  4. Javaファイルで「my_color」色を使用して、次のように背景を動的に設定できるようになりました。

    mTextView.setBackgroundResource(R.color.my_color);
    
3
Sahil Sharma

ここでは少し詳しく説明しますが、

活動中の場合はこれを使用してください

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

フラグメントにいる場合は、以下のコードを使用します

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

recyclerviewアダプタを使用している場合は、以下のコードを使用します

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

// use holder.textview if you are in onBindviewholder
//here context is passed from fragment
3
dharmx
tv.setTextColor(getResources().getColor(R.color.solid_red));
3
Yash Patil

Color.parseHexColor("17ee27")は機能しませんでしたが、代わりにColor.parseColor("17ee27")は完全に機能しました。

2
Siddharth

それを行う2つの方法:

1.colors.xmlファイルに次のような色を作成します。

<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"));
1
Hamad

すべてのバージョンをサポートする場合は、次を実行します。

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

1
Mladen Rakonjac

ジュート使用

ArrayAdapter<String> adaptername = new ArrayAdapter<String>(this,
            Android.R.layout.simple_dropdown_item_1line, your array list);
1
Pavan Anadkat