如果我以编程方式创建复选框,如下所示:
private Fruits fruits = new Fruits();
final String color = ... //user input from another control
final List<String> listFruits = fruits.getFruits(color);
final LinearLayout ll = (LinearLayout) findViewById(R.id.ll);
...
for (int i = 0; i < listFruits.size(); i++)
{
final CheckBox chkFruits = new CheckBox(Main_Activity.this);
chkFruits.setText(listFoods.get[i]);
ll.addView(chkFruits);
//insert code here on how to pass data of checked checkboxes to my next Activity_2
}
我的水果课如下:
public class Fruits {
List<string> getFruits(String color) {
List<String fruits = new ArrayList<String>();
if (color.equals="red"){
fruits.add("Apple");
fruits.add("Strawberry");
}
else if (color.equals="yellow"){
fruits.add("Banana");
fruits.add("Pineapple");
}
return fruits;
}
}
如何检查用户已检查哪些生成的复选框,然后传递它的信息(即setText(listFoods.get[0]
将提供&#34; Apple&#34; if color="red"
)到我的下一个Activity_2?
我尝试使用Intent:
final String[] passThis = new String[1];
Button btn = (Button) findViewById(R.id.btn);
...
btn.setOnClickListener(new View.OnClickListener(){
...
Intent intent = new Intent (getBaseContext(), Activity_2.class);
intent.putExtra("checkedFruits", passThis[0]);
startActvity(intent);
但它返回 NULL 。如何将生成的复选框的文本/值导入我的下一个Activity_2?
编辑:如何将检查的CheckBox中的任何内容推送到我的passThis[]
数组中,以便将它们传递到下一个Activity?
答案 0 :(得分:0)
创建已选中复选框的文本列表,需要在每个复选框上添加clickListener。尝试这样的事情:
List checked<String> = new ArrayList()// stores checked checkboxes text
for (int i = 0; i < listFruits.size(); i++)
{
final CheckBox chkFruits = new CheckBox(Main_Activity.this);
chkFruits.setText(listFoods.get(i));
chkFruits.setTag(i); // to identify checkboxes
//add click listener to your checkboxes
chkFruits.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CheckBox checkbox=(CheckBox)v;
if(checkbox.isChecked())
{
int pos=(int)checkbox.getTag();
checkbox.setChecked(false);
checked.remove(pos);
}else
{
checkbox.setChecked(true);
checked.add(checkbox.getText());
}
}
});
ll.addView(chkFruits);
}
您可以将checked
列表传递给下一个活动。