Android 从循环复选框中获取文本并将其存储到字符串中
我对android和java编程有点陌生,我有一个问题,希望你能帮我解决:) 我有一个程序,它将从数据库中获取和循环数据,并将其转换为一些复选框,然后用户必须选中这些复选框并点击提交按钮,, 选中复选框的值将存储为字符串[],然后通过Intent.putExtra发送到另一个活动 到目前为止,我所能做的只是从数据库中获取并循环数据,但我不知道如何将所有选中的值(复选框)存储到string中,并通过intent将其发送到另一个活动。你们能帮我解决这个问题吗?我应该把代码放在哪里 这是我的代码:Android 从循环复选框中获取文本并将其存储到字符串中,android,checkbox,storing-data,Android,Checkbox,Storing Data,我对android和java编程有点陌生,我有一个问题,希望你能帮我解决:) 我有一个程序,它将从数据库中获取和循环数据,并将其转换为一些复选框,然后用户必须选中这些复选框并点击提交按钮,, 选中复选框的值将存储为字符串[],然后通过Intent.putExtra发送到另一个活动 到目前为止,我所能做的只是从数据库中获取并循环数据,但我不知道如何将所有选中的值(复选框)存储到string中,并通过intent将其发送到另一个活动。你们能帮我解决这个问题吗?我应该把代码放在哪里 这是我的代码: p
private void fetchFromDatabase() {
// TODO Auto-generated method stub
myDb.open();
int totalGroup = myDb.countHowManyGroups(Username);
String groupId[] = myDb.fetchGroupId(Username);
String groupName[] = myDb.fetchGroupName(Username);
String flag[] = null;
for (int i = 0; i < totalGroup; i++) {
listCheckBox = new CheckBox(this);
listCheckBox.setText(groupName[i]);
listCheckBox.setTag(groupId[i]);
if (listCheckBox.isChecked()) {
int x=0;
flag[x]=listCheckBox.getText().toString();
x++;
}
layout.addView(listCheckBox);
}
myDb.close();
Button bSubmit = new Button(this);
bSubmit.setText("Submit");
layout.addView(bSubmit);
bSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (listCheckBox.isChecked()) {
}
}
});
}
private void fetchFromDatabase(){
//TODO自动生成的方法存根
myDb.open();
int totalGroup=myDb.counthowmanygroup(用户名);
字符串groupId[]=myDb.fetchGroupId(用户名);
字符串groupName[]=myDb.fetchGroupName(用户名);
字符串标志[]=null;
对于(int i=0;i
这取决于您要存储的内容。是否要存储所选复选框的id?然后重写它们的setOnCheckedChangeListener
,将其id
保存到数组中(请记住,除非设置了id,否则id为0)
你想保存它的标签吗?然后重写相同的方法,但保存标记
下面是setOnCheckedChangeListener
的实现示例:
List<String> myTagList = new ArrayList<String>();
listCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked)
myTagList.add(buttonView.getTag());
else
myTagList.remove(buttonView.getTag());
}
});
List myTagList=new ArrayList();
setOnCheckedChangeListener(新的CompoundButton.OnCheckedChangeListener(){
@凌驾
检查更改后的公共无效(复合按钮视图,布尔值已检查){
如果(已检查)
添加(buttonView.getTag());
其他的
myTagList.remove(buttonView.getTag());
}
});
您至少有两个选项。首先,当您创建新复选框并将其添加到布局时,它们现在是布局的子项。因此,您可以遍历布局的子级。第二,您可以添加一个CheckBox[]CheckBox数组?字符串[]?随你的便。这只是一个例子。我试过你的代码,但它仍然不能存储值,是不是另一种方法?他走的是正确的道路:“通过示例学习”。有足够的时间稍后再深入研究。甚至今天。一个人不必按照你或我的方式去做。选择你自己的方式。谢谢@pedro,我使用了你的代码并尝试用谷歌搜索它,现在它成功了,谢谢