如何在android中获取多个复选框值

时间:2015-04-30 09:59:45

标签: android

在Android中我的要求是: -

我有多个复选框和一个按钮。在您选择单击按钮后,它将显示为您选择的文本框。

所以我有 activity_test.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/check"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#ffffff"
     > 

   <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
         android:id="@+id/lay1">

        <CheckBox
            android:id="@+id/checkBox1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="apple"
            android:tag="apple"
            android:onClick="onCheckboxClicked" />

        <CheckBox
            android:id="@+id/checkBox2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="banana" 
            android:tag="banana" 
            android:onClick="onCheckboxClicked"/>

        <CheckBox
            android:id="@+id/checkBox3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="water_milon" 
            android:tag="water_milon"
            android:onClick="onCheckboxClicked"/>

    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
         android:id="@+id/lay2">

        <CheckBox
            android:id="@+id/checkBox4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="guava" 
            android:tag="guava" 
            android:onClick="onCheckboxClicked"/>

        <CheckBox
            android:id="@+id/checkBox5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="panir" 
             android:tag="panir"
             android:onClick="onCheckboxClicked"/>

        <CheckBox
            android:id="@+id/checkBox6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="chatni" 
             android:tag="chatni"
             android:onClick="onCheckboxClicked"/>

    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
         android:id="@+id/lay3">

        <CheckBox
            android:id="@+id/checkBox7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="college"
             android:tag="college"
             android:onClick="onCheckboxClicked" />

        <CheckBox
            android:id="@+id/checkBox8"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="school" 
             android:tag="school"
             android:onClick="onCheckboxClicked"/>

        <CheckBox
            android:id="@+id/checkBox9"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="primary" 
             android:tag="primary"
             android:onClick="onCheckboxClicked"/>

    </LinearLayout>

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" 
       />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
       />

</LinearLayout>

和java类文件是: -

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("you have selected:--"+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 :(得分:6)

将for循环工具中的txt.setText("you have selected:--");更改为

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