0

我创建了一个填充有 XMLParser 的 ListView,并且允许用户使用复选框从列表中选择多个值,然后可以通过按下按钮进入下一个活动。在活动 2 上,我想检索所有被选中的值。

要获取我使用的所有选定值:String selected += "\n- " +c.getName(); 其中 c 是final ConfigOptions c = options.get(position);

我也像这样在 onCreate 方法之外声明它

public static String selected = null;

但我有同样的问题

问题是,在活动 2 上,我得到了所有选定的值,但其中一个值为 null

EX: null \n -Servotronic \n - 停车距离控制 \n - 限速信息

此外,如果我尝试重新打开活动 1 并再次选择新项目,则在第二个活动中,之前选择的旧活动也在那里。即使我将字符串的值设置为 null,我仍然可以将它们全部放在那里。

那么如何连接该字符串的值,以便在下一个活动中不再获得空值,并且还能够重置该值以便再次进行选择?

4

2 回答 2

1

您可以使用AndroidBundle以更好的方式完成任务。创建要传递的项目的 ArrayList,将 ArrayList 添加到BundleBundleIntent调用中发送。

于 2013-04-23T16:10:17.657 回答
1

当用户想去活动 2 时,制作一个字符串数组来保存所选项目的数量。将其作为额外内容添加到您启动 Activity 2 的意图中。

int count = // get number of selections
String[] options = new String[count];
for (int i = 0; i < count; i++) {
    options[i] = // ith selection
}
Intent intent = new Intent(this, Activity2.class);
intent.putExtra("options", options);
startActivity(intent);

在 Activity 2 的 onCreate 中:

String[] options = getIntent.getStringArrayExtra("options");
if (options != null) {
    // process the strings here.
}
于 2013-04-23T16:19:32.557 回答