我是android和java编程的新手,我有一个问题,希望你能帮助我解决它:)
我有一个程序,它将从数据库获取并循环数据并将其转换为一些复选框,然后用户必须选中复选框并点击提交按钮, 已选中复选框的值将存储到String [],然后通过Intent.putExtra发送到另一个活动。
到目前为止,我所能做的就是从数据库中获取并循环数据,但我不知道如何将所有选中的值(复选框)存储到字符串并通过intent将其发送到另一个活动。你能帮我解决这个问题吗?我应该把代码放在哪里?
这是我的代码:
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()) {
}
}
});
}
答案 0 :(得分:0)
这取决于您想要存储的内容。是否要存储所选复选框的ID?然后覆盖他们的setOnCheckedChangeListener
以将其保存在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());
}
});