与背景颜色的Textview

时间:2016-06-17 10:51:20

标签: android xml user-interface textview

我是android新手。我在做一个应用程序时遇到了困难。我已经拍摄了5个带时隙的textviews,我想表明当我点击一个文本视图时它应该改变它的背景颜色,当我点击另一个textview时,第一个文本视图的背景颜色必须消失并且呈现文本视图的颜色必须突出显示。

Image Here

我在这里发布我的代码:

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

4 个答案:

答案 0 :(得分:2)

一种简单的方法是创建一个禁用后台功能,每次单击一个新功能时都会调用该功能。

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;
...

更简单的是在你的案例陈述之前调用它,具体取决于你想采取什么行动。

答案 1 :(得分:0)

例如,使用if else来设置背景颜色;如果onclick of firsttextview设置其颜色并点击第二个更改firsttextview颜色并设置秒颜色

答案 2 :(得分:0)

您必须更改所有Textviews的颜色。 示例t1是可选择的,将t1的颜色更改为选中状态,将其他文本视图更改为未选中,其他文本视图也是如此

答案 3 :(得分:0)

如果您使用处理所有点击和选择的广播组,并且如果您有许多文字视图则突出显示会更好。

请查看以下网址。 Url

在该链接中使用Sanjeet Ajnabee的回答。这很棒。我一直在使用它。