2012-05-08 2 views
0

У меня есть ScroolView и он внутри Линейный формат. В этой линейной компоновке я добавил программно около 20 TextView. Когда я нажимаю любой из этих TextView, я меняю цвет на RED (сначала он был белым). Когда я снова нажимаю тот же TextView, я проверяю его цвет, и если он КРАСНЫЙ, я снова делаю его белым.Проверка и изменение цвета текста TextView

Что я хочу сделать:

жму на примере 1 TextView и сделать его RED. Затем, когда я нажимаю 2 TextView, я делаю этот КРАСНЫЙ, и я хочу сделать 1 TextView WHITE. Эта функциональность должна быть вообще TextView.

Итак, любая идея, как это сделать?

+0

принять массив textview..check индекса, на котором вы щелкая и сделать его красным и сделать другие, чем TextView белый .. – dreamcoder

+0

установите onClick() на весь текст и в onClick() итерируйте все textview с помощью цикла, чтобы проверить цвет, нажав один на RED и другие WhIte. Также сделайте условие, если щелкнуть, у RED будет белый. – user370305

+0

cant u set boolean values, чтобы проверить, когда цвет красный (Boolean red = true) или белый (красный = false), на основе логических значений, проверьте его и установите цвета оставшегося текста на белый или красный на тексте evry нажмите кнопку. – John

ответ

0

Вы хотите сказать, что вам нужно только одно текстовое изображение, чтобы оно было красным. Вы можете сделать это, используя 2 переменные. Один из них - логическое значение colored. Это означает, что по крайней мере один TextView окрашен. Другой - переменная TextView. Создайте переменную TextView lastColoredTextView. Пусть сначала будет null. Затем всякий раз, когда нажимается текстовое изображение, присвойте lastColoredTextView щелкнув TextView. Затем всякий раз, когда вы нажимаете, просто проверьте, colored затем измените цвет lastColoredTextView на белый.

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); 
} 

}

Смежные вопросы