将多个值添加到textView - Android

时间:2013-12-06 23:24:29

标签: android textview android-button

我正在尝试制作一个包含4个切换按钮和textview的基本应用程序。这个想法很简单:当按下一个按钮时,textview将显示当前正在按下哪些按钮。这可以包括多个按钮(例如,如果按下例如1,3和4)。这是我为它编写的代码:

TextView按钮;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    buttons = (TextView)findViewById(R.id.textView1);

    }

public void buttonPressed(View v){
    boolean check = ((ToggleButton)v).isChecked();

    int b1 = 1, b2 = 2, b3 = 3, b4 = 4;

    switch(v.getId()){
    case R.id.toggleButton1:
        if(check){
            buttons.setText("Buttons pressed: " + b1);
        }
        else{
            buttons.setText("Buttons pressed:");
        }
        break;
    case R.id.toggleButton2:
        if(check){
            buttons.setText("Buttons pressed: " + b2);
        }
        else{
            buttons.setText("Buttons pressed:");
        }
        break;
    case R.id.toggleButton3:
        if(check){
            buttons.setText("Buttons pressed: " + b3);
        }
        else{
            buttons.setText("Buttons pressed:");
        }
        break;
    case R.id.toggleButton4:
        if(check){
            buttons.setText("Buttons pressed: " + b4);
        }
        else{
            buttons.setText("Buttons pressed:");
        }
        break;
    default:
        break;

    }



}

不幸的是,每次运行此程序时,textview都会被覆盖,我无法确认是否按下了多个按钮。欢迎提出所有建议。

2 个答案:

答案 0 :(得分:1)

如果您希望textview始终显示ON按钮的数量,我认为您可以这样做:

保留按钮的曲目

private ToggleButton[] btns = new ToggleButton[4];

在onCreate()中:

btn[0] = (ToggleButton)findViewById(R.id.toggleButton1);
btn[1] = (ToggleButton)findViewById(R.id.toggleButton2);
btn[2] = (ToggleButton)findViewById(R.id.toggleButton3);
btn[3] = (ToggleButton)findViewById(R.id.toggleButton4);

然后在你的buttonPressed处理程序中:

String text = "Buttons pressed: ";
for (int i = 0; i < 4; i++) {
    if (btn[i].isCheck()) {
        text += (i + 1) + ", ";
    }
}
buttons.setText(text);

答案 1 :(得分:0)

如果您不想覆盖已存在的文本,则需要使用append()。像

这样的东西
public void buttonPressed(View v){
boolean check = ((ToggleButton)v).isChecked();

int b1 = 1, b2 = 2, b3 = 3, b4 = 4;

switch(v.getId()){
case R.id.toggleButton1:
    if(check){
        buttons.append("" + b1);
    }
    else{
        buttons.setText("Buttons pressed:");
    }
    break;

您可以在buttons.setText("Buttons pressed");中使用onCreate()一次,然后将所有内容附加到其中。