在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;
}
}
}
但问题是,当我点击按钮时,它只显示最后选择的项目..没有所有选定的项目......问题在哪里?
答案 0 :(得分:6)
将for循环工具中的txt.setText("you have selected:--");
更改为
for (String str : list) {
txt.setText(txt.getText().toString() + " , " + str);
}