在Java(Android)中连接具有多个值的字符串
我创建了一个ListView,其中填充了一个XMLParser,允许用户使用复选框从列表中选择多个值,然后可以通过按下按钮转到下一个活动。 在“活动2”中,我希望检索所有选定的值 要获取所有选定值,我使用:在Java(Android)中连接具有多个值的字符串,java,android,concatenation,Java,Android,Concatenation,我创建了一个ListView,其中填充了一个XMLParser,允许用户使用复选框从列表中选择多个值,然后可以通过按下按钮转到下一个活动。 在“活动2”中,我希望检索所有选定的值 要获取所有选定值,我使用:String selected+=“\n-”+c.getName() 其中c是final ConfigOptions c=options.get(位置) 我还在onCreate方法之外声明了它,如下所示 public static String selected = null; 但我也有同样
String selected+=“\n-”+c.getName()代码>
其中c是final ConfigOptions c=options.get(位置)代码>
我还在onCreate方法之外声明了它,如下所示
public static String selected = null;
但我也有同样的问题
问题是,在活动2上,我获得了所有选定的值,但其中一个值为null
EX:null\n-伺服电子系统\n-驻车距离控制\n-速度限制
信息
此外,如果我尝试重新打开活动1并再次选择新项目,则在第二个活动上,以前选择的旧活动也会出现。即使我将字符串的值设置为null,我仍然会在那里得到所有字符串
那么,我如何连接该字符串的值,以便在下一个活动中不再获取空值,并且能够重置该值,以便再次进行选择呢?您可以使用它以更好的方式完成任务。创建要传递的项目的ArrayList,将ArrayList添加到捆绑包中
,并在Intent
调用中发送捆绑包。当用户想要转到活动2时,制作一个字符串数组来保存所选项目的数量。将其作为额外内容添加到开始活动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);
您需要编写空检查
条件。可能是因为您正在声明一个字符串并在同一行上添加“++=”?选择的字符串+=“\n”是一个语法错误。我尝试在onCreate方法之外声明它,并尝试了您的方法,但存在相同的问题。@StuPointerException之后的“\n”是一个+。我使用它是为了在新行上有选择,而不是一行接一行。在EX中:我发布了\n以便人们知道每个项目都在一个新行上。
String[] options = getIntent.getStringArrayExtra("options");
if (options != null) {
// process the strings here.
}