如何从仅选中多个复选框中获取单个字符串值

时间:2018-09-17 14:46:57

标签: java android checkbox

我正在使用微调器来获取选定的值,并将其上传到Firebase数据库。由于从下拉列表中只能选择一个值,因此还有另一个Editbox,如果个人也可以使用其他选项,则可以在其中编辑,这是一个漫长的过程。

因此,我希望在Grid视图中实现多个复选框,以便当用户选中给定的复选框时,我只能检索在单个字符串中选中的值,然后在firebase中上载。

这是我找到的代码

public class MainActivity_test extends Activity {



    CheckBox chk1,chk2,chk3,chk4,chk5,chk6,chk7,chk8,chk9;
    Button btn;

    TextView txt;
    ArrayList<String> list ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);


        list = new ArrayList<String>();


        chk1=(CheckBox)findViewById(R.id.checkBox1);  
        chk2=(CheckBox)findViewById(R.id.checkBox2);  
        chk3=(CheckBox)findViewById(R.id.checkBox3);  
        chk4=(CheckBox)findViewById(R.id.checkBox4);  
        chk5=(CheckBox)findViewById(R.id.checkBox5);  
        chk6=(CheckBox)findViewById(R.id.checkBox6);  
        chk7=(CheckBox)findViewById(R.id.checkBox7);  
        chk8=(CheckBox)findViewById(R.id.checkBox8);  
        chk9=(CheckBox)findViewById(R.id.checkBox9);  
        txt = (TextView)findViewById(R.id.textView1);
        btn =(Button)findViewById(R.id.button1);  
        addListenerOnButton();
    }

    public void addListenerOnButton() {


        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {

                for (String str : list) {
     txt.setText(txt.getText().toString() + " , " + str);
}


            }

        });

    }



    public void onCheckboxClicked(View view) {

        boolean checked = ((CheckBox) view).isChecked();

        switch(view.getId()) {
        case R.id.checkBox1:
             list.add(chk1.getTag().toString());


        break;
        case R.id.checkBox2:
            list.add(chk2.getTag().toString());

        break;

        case R.id.checkBox3:
            list.add(chk3.getTag().toString());

            break;
        case R.id.checkBox4:
            list.add(chk4.getTag().toString());

            break;
        case R.id.checkBox5:
            list.add(chk5.getTag().toString());

            break;
        case R.id.checkBox6:
            list.add(chk6.getTag().toString());

            break;
        case R.id.checkBox7:
            list.add(chk7.getTag().toString());

            break;
        case R.id.checkBox8:
            list.add(chk8.getTag().toString());

            break;
        case R.id.checkBox9:
            list.add(chk9.getTag().toString());

            break;

        }
        }


}

但是如何将“选定项目”的值作为一个“单个字符串”输出获得。

谢谢。

1 个答案:

答案 0 :(得分:0)

您应该执行类似的操作

public class MainActivity_test extends Activity implements CompoundButton.OnCheckedChangeListener{

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

    addCheckboxListner();
}

private void addCheckboxListner(){
    chk1.setOnCheckedChangeListener(this);
    chk2.setOnCheckedChangeListener(this);
    chk3.setOnCheckedChangeListener(this);
    chk4.setOnCheckedChangeListener(this);
    chk5.setOnCheckedChangeListener(this);
    chk6.setOnCheckedChangeListener(this);
    chk7.setOnCheckedChangeListener(this);
    chk8.setOnCheckedChangeListener(this);
    chk9.setOnCheckedChangeListener(this);
}

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    onCheckboxClicked(buttonView);
}}