我正在从activityForResult()
发起MainActivity
。根据用户在SecondActivity
中选择的选项,它会返回String
或String[]
。在MainActivity
我覆盖onActivityResult()
,但我如何首先测试返回的数据,看看它是String
还是String[]
,以便我可以相应地处理它?</ p >
这就是我处理数组的方式:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
String[] result =data.getStringArrayExtra("elements");
et.setText("");
for(int i=0;i<result.length;i++){
et.append(result[i].toString());
}
}
答案 0 :(得分:9)
为什么不总是从String[]
返回SecondActivity
?如果只有一个String
,只需返回一个String []
,其中包含String
个{{1}}。这似乎是错误的设计,以返回具有相同键的两种不同类型的对象...
答案 1 :(得分:1)
我会把它们放在不同的键中。
类似于element
String
和elements
String[]
。
String[] result =data.getStringArrayExtra("elements");
if(result == null)
String strResult = data.getStringExtra("element");
我也支持史蒂文所说的话。但是不知道你的应用程序的设计以及你这样做的原因,所以你必须做出选择。
答案 2 :(得分:0)
你几乎这样做了......只需检查
if(result != null)
// it is array