2011-05-30 5 views
63

を働いていない。またのTextView SETTEXTCOLOR()私はプログラム的な要素のリスト(なしリストビュー、ちょうど親に追加すること)を作成

<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> 

を、私は値/ colors.xmlにいくつかの色を定義しています。ご覧のように、idが "lagerstand_text"のTextViewはデフォルトで赤色に設定されています。それは動作します。 Javaでの要素を作成する場合は

、私は

lagerstandText.setText("bla"); 

といくつかの要素のために何も私は

lagerstandText.setTextColor(R.color.red); 

や他の色を行います。要素がどの私はSETTEXTCOLORを呼び出すことはありませんが(は)私は(それが再び同じ赤だ場合でも)選んだのどの色にかかわらず、他のすべては灰色で、赤ではありません。

なぜですか?

+0

をそれを追加しますあなたは答えを受け入れることができます –

答えて

188

ドキュメントはこのことについて非常に冗長ではありませんが、setTextColorを呼び出すときにあなただけR.colorの整数を使用することはできません。色を正しく設定するにはgetResources().getColor(R.color.YOURCOLOR)に電話する必要があります。

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

がGETCOLORが推奨されませんので、あなたは、次のコードを使用する必要があるサポートライブラリ23から開始:

は、プログラムで、あなたのテキストの色を設定するには、以下を使用し

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

さて、それは動作します。 APIのドキュメントは、このケースではもう少し冗長かもしれません... –

+12

また、色を使用することができます。 (ここでは赤い緑色の黒い青色の黄色など)setTextColor(Color.RED) – Peter

+0

この情報をお寄せいただきありがとうございます。しかし、このgetResources()は、一連のコンテキストを渡します。グローバルリソースにアクセスするには、より良い方法があるはずです。 – Umair

31

ので、この作業を達成するには多くの方法があります。

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

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

textView.setTextColor(0xffbdbdbd); 

4 。

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

textView.setTextColor(Color.argb(a_int, r_int, g_int, b_int)); 
+0

見つけ出す方法はありますか特定の色の値がテキストを消えるようにするのであれば? –

+0

@ChristopherMasserは何を言いたいのか分からない??? – duggu

+0

setTextColor(color)を使用する前に、色の明るさを調整しています。いくつかの未知のケースでは、TextViewはデバイス上で単に消えます(バックグラウンドとは無関係)。 setTextColor(color)で "color"を使用する前に "color"が有効なカラー値であるかどうかを調べるテスト関数を記述したいと思います。 –

0

Rクラスで定義された(XMLレイアウトで定義された)特定の色の整数IDはViewクラスのsetTextColor()メソッドにパラメータとして渡すことができません。

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

代わりに上記のコードの行のようにgetColor(int id,Resources.Theme theme)を使用して...償却されていgetColor(int id)方法: あなたは、次のコード行でsetTextColor()のパラメータを取得する必要があります。あなたは色のリソースを利用することができます

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

この方法:

The `second parameter(theme)` can be null 
1

は、今後の参考のために、あなたは以下を使用することができます。

2

1.標準カラーは以下のとおりです。私の答えはのためhelpfuklある場合

textview.setTextColor(Color.select_color) 

2.hereがcustwomの色を使用したいがcolor.xmlファイルに

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

または

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

または

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