2012-05-08 9 views
0

私はScroolViewを持っていて、それはリニアレイアウト内にあります。この線形レイアウトでは、約20のTextViewをプログラムで追加しました。それらのTextViewのどれかを押すと、色が赤に変わります(最初は白でした)。同じTextViewをもう一度押すと色がチェックされ、赤であれば再び白くなります。私は何をしたいかTextViewのテキストの色を確認して変更する

私は、例えば1つのTextViewを押すと、それはREDします。次に、2 TextViewを押すと、これが赤色になり、1 TextView WHITEを作成します。この機能はすべてTextViewにある必要があります。

どのようにすればいいですか?

+0

あなたがクリックされたtextview..checkインデックスのアレイを取り、それを赤色にし、白それのTextView以外作る.. – dreamcoder

+0

を拡張しますonClick()をすべてのtextviewに設定し、onClick()をloopですべてのtextviewを繰り返して、REDや他のユーザーがクリックした色を確認します。また、クリックされた場合には赤を白にする条件を作成します。 – user370305

+0

can not uブール値に基づいて、ブール値に基づいてカラーが赤(ブール赤=真)または白(赤=偽)であるかどうかをチェックし、チェックし、残りのテキストの色を白または赤に設定するブール値を設定しますクリック。 – John

答えて

0

あなたは赤であるためにただ1つのテキストビューが必要と言うことを意味します。 2つの変数を使用してこれを行うことができます。 1つはブール値coloredです。これは少なくとも1つのTextViewが色付けされていることを示します。もう一つはTextView変数です。 TextView変数lastColoredTextViewを作成します。最初はnullにする。次に、テキストビューがクリックされるたびに、クリックされたTextViewにlastColoredTextViewを割り当てます。次にクリックするたびに、coloredlastColoredTextViewの色を白に変更しているかどうかを確認してください。

0

クラス名を変更しても問題ありません。

パブリッククラスTest_stflowActivityアクティビティ{

TextView current_red_txt_box = null; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    TextView tv = null; 
    LinearLayout lp = new LinearLayout(getApplicationContext()); 
    lp.setOrientation(LinearLayout.VERTICAL); 
    View.OnClickListener txt_click = new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      current_red_txt_box.setTextColor(Color.WHITE); 
      TextView tv = (TextView) v; 
      tv.setTextColor(Color.RED); 
      current_red_txt_box = tv; 
     } 
    }; 
    for (int i = 0; i < 20; i++) { 
     tv = new TextView(getApplicationContext()); 
     tv.setId(i); 
     tv.setTextSize(40); 
     tv.setText("you text"); 
     tv.setTextColor(Color.WHITE); 
     tv.setOnClickListener(txt_click); 
     lp.addView(tv); 
     current_red_txt_box = tv; 
    } 
    setContentView(lp); 
} 

}

関連する問題