我正在从我的MainActivity
启动activityForResult()
。根据用户在SecondActivity
中选择的选项,它返回String
或String[]
。在我的MainActivity
中,我覆盖onActivityResult()
,但是我如何先测试返回的数据,看看它是String
还是String[]
,这样我就可以相应地处理它?
我是这样处理数组的:
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());
}
}
为什么不总是从SecondActivity
返回String[]
?如果只有一个String
,只需返回一个String []
,其中包含一个String
。使用相同的键返回两种不同类型的对象,这似乎是一个糟糕的设计…
我会把它们放在不同的键中。比如element
到String
, elements
到String[]
。
String[] result =data.getStringArrayExtra("elements");
if(result == null)
String strResult = data.getStringExtra("element");
我也支持Steven说的话。但不知道你的应用的设计和你这样做的原因,所以你必须做出选择。
你差点就做到了…只是检查
if(result != null)
// it is array