我是android.i中的新手,制作一个简单的数学应用程序.我使用复选框选择正确的选项,但问题是在这里答案选项不仅是一个而且是两个,三个意味着多选择所以我使用复选框
chkOption.setOnCheckedChangeListener(this);
Run Code Online (Sandbox Code Playgroud)
事件并尝试处理this.并将选择值存储在一个Arraylist中.但是当我选择选项时,值是在arrayList中添加但是当我取消选中(Diselect)时,事件也会发生并且值在arraylist中添加.我的代码如下
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
CheckBox chk=(CheckBox) buttonView;
if(chk.isChecked())
{
forMetchCheckBox.add(String.valueOf(chk.getText()));
}
}
Run Code Online (Sandbox Code Playgroud)
forMetchCheckbow是我的String ArrayList.所以我该怎么办?如何处理这个问题.如果有任何用户取消选择该选项,那么可以从ArrayList.it删除复选框选择值吗?
您似乎拥有多个复选框,并且您正在为每个复选框设置全局侦听器.因此,在这种情况下,您还需要为特定复选框标识事件.
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
int id = buttonView.getId();
if(id == R.id.chk)
{
if(chk.isChecked()){
forMetchCheckBox.add(String.valueOf(chk.getText()));
}
else{
forMetchCheckBox.remove(String.valueOf(chk.getText()));
}
}
else if(id == R.id.chk1){
....
}
}
Run Code Online (Sandbox Code Playgroud)
等等,这将使你的听众工作完美.