是否有可能确定从活动发送回来的数据是String还是String[]



我正在从我的MainActivity启动activityForResult()。根据用户在SecondActivity中选择的选项,它返回StringString[]。在我的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。使用相同的键返回两种不同类型的对象,这似乎是一个糟糕的设计…

我会把它们放在不同的键中。比如elementString, elementsString[]

String[] result =data.getStringArrayExtra("elements");
if(result == null)
   String strResult = data.getStringExtra("element");
我也支持Steven说的话。但不知道你的应用的设计和你这样做的原因,所以你必须做出选择。

你差点就做到了…只是检查

if(result != null)
   // it is array 

最新更新