2012-02-26 10 views
0

現在、LinearLayout(下のコード)に入る3つのテキストビューを設定しています。しかし、setColorメソッドを使用して割り当てられた最後の色は最初のtextviewにのみ適用され、実際には最初に設定した色を上書きします。この場合、VIEW1でレイアウト内の異なるテキストビューに異なる色を設定する

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    //setContentView(R.layout.main); 

    TextView view1 = new TextView(this); 
    view1.setText("I am view one"); 
    view1.setTextColor(ColorStateList.valueOf(Color.RED)); 
    view1.setTextSize(25); 
    view1.setGravity(Gravity.CENTER); 

    TextView view2 = new TextView(this); 
    view2.setText("I am view two"); 
    view1.setTextColor(ColorStateList.valueOf(Color.BLUE)); 
    view2.setTextSize(30); 
    view2.setGravity(Gravity.CENTER); 

    TextView view3 = new TextView(this); 
    view3.setText("I am view three"); 
    view1.setTextColor(ColorStateList.valueOf(Color.YELLOW)); 
    view3.setTextSize(50); 
    view3.setGravity(Gravity.CENTER); 


    LinearLayout myLinearLayout = new LinearLayout(this); 
    myLinearLayout.setOrientation(LinearLayout.VERTICAL); 
    myLinearLayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
    myLinearLayout.setGravity(Gravity.CENTER); 
    myLinearLayout.addView(view1); 
    myLinearLayout.addView(view2); 
    myLinearLayout.addView(view3); 

    setContentView(myLinearLayout); 

黄色であり、他のビューは...グレー赤と青である正しいビューに適用されていません。私は最初setColorを使用しようとしていましたが、私はドキュメントごとにColorStateListを使用しようとしていましたが、同じ結果が適用されます。とにかく、私はどのように私は別のtextviewsにしたい色を強制的に行くだろうか?私はこれが簡単になるべきだと知っている、おそらく私はここで何かを逃している。すべての前にありがとう。

答えて

4

色を設定しているオブジェクトに注意してください。コピーペーストが残っているようです。すべての色の割り当てはview3に何が本当にしたいことはview2に2つ目の割り当てで色を設定することであるのに対し、view1で行われ、そして第三にあります。ところで

TextView view1 = new TextView(this); 
view1.setText("I am view one"); 
view1.setTextColor(ColorStateList.valueOf(Color.RED)); 
view1.setTextSize(25); 
view1.setGravity(Gravity.CENTER); 

TextView view2 = new TextView(this); 
view2.setText("I am view two"); 
view2.setTextColor(ColorStateList.valueOf(Color.BLUE)); // <-- view2 
view2.setTextSize(30); 
view2.setGravity(Gravity.CENTER); 

TextView view3 = new TextView(this); 
view3.setText("I am view three"); 
view3.setTextColor(ColorStateList.valueOf(Color.YELLOW)); // <-- view3 
view3.setTextSize(50); 
view3.setGravity(Gravity.CENTER); 

.setColor(Color.RED)を呼び出す簡単な(または異なります色)で十分です。

+0

ああ私の言葉。 EPIC FAILについて話してください。私はあなたが8時間コーディングしていたときに何が起こるかと思います。気づいてくれてありがとう。私はおそらくそれを遅かれ早かれ入手していただろう。それはすべてそれを固定しました。うまくいけば次回私はそれほど明白ではない質問をするでしょう:) – cspam

+0

私たちはすべてそこにいました。新鮮な目のペアが常に役立ちます。ハッピーコーディング:) –

関連する問題