2016-06-17 17 views
0

私はアンドロイドを初めて使っています。私はアプリケーションを実行中に立ち往生した。タイムスロットで5つのテキストビューを取ったが、私は1つのテキストビューをクリックするとその背景色を変更する必要があり、別のテキストビューをクリックすると最初のテキストビューの背景色が消えなければならない現在のテキストビューの色が強調表示されている必要があります。例えば、色をsetBackgroundする他の場合背景色のテキストビュー

public void onClick(View v) { 
    switch (v.getId()){ 
     case R.id.time_slot_one: 
      setTimeSlotOne.setBackgroundColor(Color.parseColor("#bdbdbd")); 
     break; 

     case R.id.time_slot_two: 
      setTimeSlotTwo.setBackgroundColor(Color.parseColor("#bdbdbd")); 
      break; 
     case R.id.time_slot_three: 
      setTimeSlotThree.setBackgroundColor(Color.parseColor("#bdbdbd")); 
      break; 
     case R.id.time_slot_four: 
      setTimeSlotFour.setBackgroundColor(Color.parseColor("#bdbdbd")); 
      break; 
     case R.id.time_slot_five: 
      setTimeSlotFive.setBackgroundColor(Color.parseColor("#bdbdbd")); 
      break; 
    } 
+0

あなたのコードは動作していますか? –

答えて

0

使用;:ここ

Image Here

私は私のコードを投稿していますfirsttextviewのonclickがその色を設定し、2回目の変更をクリックした場合firsttextview colorとset seconds秒の色

+0

はコメントにする必要があります。 –

+0

ok、新しいスタックオーバーフロー –

0

すべてのTextviewの色を変更する必要があります。 例t1は選択可能なt1の色を変更し、他のテキストビューは選択されていないようにします。残りのテキストビューについても同様です。

1

新しい背景をクリックするたびに呼び出されるDisable背景機能を作成するのが簡単な方法です。

public void removeBackgroundColors() { 
    setTimeSlotOne.setBackgroundColor(Color.WHITE); 
    setTimeSlotTwo.setBackgroundColor(Color.WHITE); 
    setTimeSlotThree.setBackgroundColor(Color.WHITE); 
    setTimeSlotFour.setBackgroundColor(Color.WHITE); 
    setTimeSlotFive.setBackgroundColor(Color.WHITE); 
} 

今、単純にコードを変更します。でも、シンプルな

case R.id.time_slot_two: 
    removeBackgroundColors(); 
    setTimeSlotTwo.setBackgroundColor(Color.parseColor("#bdbdbd")); 
    break; 
... 

あなたが撮りたいものを行動に応じて、あなたのケース文の前にそれを呼び出すことです。

0

多くのテキストビューがある場合は、すべてのクリックと選択を処理し、強調表示するラジオグループを使用する方が良いでしょう。

下記のURLをご確認ください。 Url

このリンクでは、Sanjeet Ajnabeeの回答を使用しています。それは素晴らしいです。私はそれを使用しています。