如何更改微调器选择上的文本

时间:2012-01-19 13:27:48

标签: java android

我有一些文字视图,其中有几个画家排成一列。微调器中有4种选择,它们都是相同的,第一种选择是' - '。我希望在选择默认选项“ - ”时,微调器旁边的textview为红色,否则为白色。

我编写了这个来处理这个,但当你选择一个微调器的不同选项时,所有的textview都会改变它的行为真的很奇怪。

    public void onItemSelected(AdapterView<?> parent,
        View view, int pos, long id) {
        switch(parent.getId()) {
        case R.id.spinner1:
            if(parent.getItemAtPosition(pos).toString().equals("--")){textView1.setTextColor(Color.RED);}else{textView1.setTextColor(Color.WHITE);}
        case R.id.spinner2:
            if(parent.getItemAtPosition(pos).toString().equals("--")){textView2.setTextColor(Color.RED);}else{textView2.setTextColor(Color.WHITE);}
        case R.id.spinner3:
            if(parent.getItemAtPosition(pos).toString().equals("--")){textView3.setTextColor(Color.RED);}else{textView3.setTextColor(Color.WHITE);}

        }
    }

2 个答案:

答案 0 :(得分:2)

你需要放一个

break;

在每个案件结束时。

public void onItemSelected(AdapterView<?> parent,
        View view, int pos, long id) {
        switch(parent.getId()) {
        case R.id.spinner1:
            if(parent.getItemAtPosition(pos).toString().equals("--")){textView1.setTextColor(Color.RED);}else{textView1.setTextColor(Color.WHITE);}
            break;
        case R.id.spinner2:
            if(parent.getItemAtPosition(pos).toString().equals("--")){textView2.setTextColor(Color.RED);}else{textView2.setTextColor(Color.WHITE);}
            break;
       case R.id.spinner3:
            if(parent.getItemAtPosition(pos).toString().equals("--")){textView3.setTextColor(Color.RED);}else{textView3.setTextColor(Color.WHITE);}
            break;

        }
    }

答案 1 :(得分:1)

你忘记了案件块中的“休息”:

case R.id.spinner1:
    if(parent.getItemAtPosition(pos).toString().equals("--")){
        textView1.setTextColor(Color.RED);
    } else {
        textView1.setTextColor(Color.WHITE);
    }
    break;

等等。