检查和更改TextView文本颜色

时间:2012-05-08 08:55:36

标签: java android

我有ScroolView,它在线性布局中。在这个线性布局中,我在程序上添加了大约20个TextView。当我按下任何一个TextView时,我将它的颜色改为红色(起初它是白色的)。当我再次按下相同的TextView时,我会检查他的颜色,如果它是红色,我再次将其变为白色。

我想做什么:

我按下示例1 TextView并将其设为RED。然后,当我按下2 TextView时,我将这个设为RED,我想制作1个TextView WHITE。此功能应该是所有TextView。

所以任何想法都是如何做到的?

2 个答案:

答案 0 :(得分:0)

你的意思是说你一次只需要一个textview为红色。您可以使用2个变量来完成此操作。一个是布尔值colored。这表示至少有一个TextView是彩色的。另一个是TextView变量。创建TextView变量lastColoredTextView。最初让它为null。然后,只要单击文本视图,就将lastColoredTextView分配给单击的TextView。然后,无论何时点击,只需检查是否colored然后将lastColoredTextView的颜色更改为白色。

答案 1 :(得分:0)

更改班级名称,它会正常工作。

公共类Test_stflowActivity扩展了Activity {

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

}