我正在尝试将一些信息发送回我的主要活动,但价值一直变为空。我知道我的第二个活动(传递信息的那个)中的信息不是空的,因为我手头打印出来。
这就是我所拥有的:
主要活动:
Intent i = new Intent(this, 2ndActivity.class);
startActivity(i);
// startActivityForResult(i, 0); I have tried this too, but same result
onActivityResult(1, RESULT_OK, i);
}
//allow to receive info from 2nd activity
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if (resultCode == RESULT_OK) {
ArrayList<String> list= data.getStringArrayListExtra("info");
if(list== null)
System.out.println("ITS NULL\n.\n.");
else
System.out.println("ITS ALL GOOOD!\n.\n.");
}
}
}
第二项活动
Intent intent = new Intent();//go back to previous intent
intent.putStringArrayListExtra("info", selectedItems);//selectedItems is an ArrayList of String
setResult(RESULT_OK, intent);
finish();//go back to the previous page
答案 0 :(得分:0)
在开始活动之前,请执行以下操作:
i.putExtra("STRINGVARIABLENAME", stringvalue);
在第二项活动中通过这样做来调用它:
String boobis = getIntent.getStringExtra("STRINGVARIABLENAME"); //Has to be the same as above
现在可以在任何地方使用变量。
答案 1 :(得分:0)
在您的第一个活动中,为什么要手动调用onActivityResult?你不应该这样做。你应该只调用startActivityForResult(i,0),然后等待第二个活动完成,onActivityResult将自动被调用。并且请求代码需要匹配您在startActivityForResult中传递的那个,在此实例中为0。
答案 2 :(得分:0)
替换
` startActivity(i);
// startActivityForResult(i, 0); I have tried this too, but same result
onActivityResult(1, RESULT_OK, i); `
与
startActivityForResult(i,1)
应该有用。