web-dev-qa-db-ja.com

TextView setTextColor()が機能しない

そのような要素のリストをプログラムで作成します(ListViewではなく、親に追加するだけです):

    <LinearLayout Android:layout_width="wrap_content" Android:layout_height="wrap_content" 
    Android:orientation="vertical" Android:layout_weight="1">
    <TextView Android:id="@+id/filiale_name"
    Android:layout_width="fill_parent" Android:layout_height="wrap_content"/>
    <TextView Android:id="@+id/lagerstand_text"
    Android:layout_width="fill_parent" Android:layout_height="wrap_content"
    Android:textSize="10sp" Android:textColor="@color/red"/>
</LinearLayout>

また、values/colors.xmlでいくつかの色を定義しました。ご覧のとおり、「lagerstand_text」というIDを持つTextViewは、デフォルトで色を赤に設定しています。動作します。

Javaで要素を作成するとき、私は

lagerstandText.setText("bla");

いくつかの要素についても

lagerstandText.setTextColor(R.color.red);

および他の色。 setTextColor()を呼び出さない要素は赤ですが、他のすべての要素は灰色です。選択した色に関係なく(同じ赤であっても)。

何故ですか?

65
didi_X8

ドキュメントはこれについてあまり冗長ではありませんが、setTextColorを呼び出すときにR.color整数だけを使用することはできません。色を適切に設定するには、getResources().getColor(R.color.YOURCOLOR)を呼び出す必要があります。

以下を使用して、プログラムでテキストの色を設定します。

textView.setTextColor(getResources().getColor(R.color.YOURCOLOR));

サポートライブラリ23以降では、getColorが非推奨になっているため、次のコードを使用する必要があります。

textView.setTextColor(ContextCompat.getColor(context, R.color.YOURCOLOR));
201

そのため、このタスクを達成する方法はたくさんあります。

1。

int color = Integer.parseInt("bdbdbd", 16)+0xFF000000;
textview.setTextColor(color);

2。

textView.setTextColor(getResources().getColor(R.color.some_color));

textView.setTextColor(0xffbdbdbd);

4。

textView.setTextColor(Color.parseColor("#bdbdbd"));

5。

textView.setTextColor(Color.argb(a_int, r_int, g_int, b_int));
31
duggu

1.標準色は以下をお選びください。

textview.setTextColor(Color.select_color)

2.ここでcustwomカラーを使用したい場合は、color.xmlファイルに追加します

textview.setTextColor(getResources().getColor(R.color.textbody));

または

textView.setTextColor(Color.parseColor("#000000"));

または

subText.setTextColor(Color.rgb(255,192,0));
1
sneha v

将来の参照のために、次を使用できます。

String color = getString(Integer.parseInt(String.valueOf(R.color.my_color)));
my_textView.setTextColor(Color.parseColor(color));

これにより、カラーリソースを利用できます。

1
Chad Mx

Rクラスで定義された特定の色(xmlレイアウトで定義)の整数IDは、ViewクラスのsetTextColor()メソッドにパラメーターとして渡すことはできません。次のコード行でsetTextColor()のパラメーターを取得する必要があります。

_int para=getResources().getColor(R.color.your_color,null);
view.setTextColor(para,null);
_

メソッドgetColor(int id)は減価償却されました...代わりに上記のコード行のようにgetColor(int id,Resources.Theme theme)を使用してください。

_The `second parameter( theme )` can be null
_
0
Abhi