2

我正在activityForResult()从我的MainActivity. 根据用户在其中选择的选项,SecondActivity它返回 aString或 a String[]。在我的MainActivityI overrideonActivityResult()中,但是如何首先测试返回的数据以查看它是否是一个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());
            }
            }
4

3 回答 3

9

为什么不总是String[]从 中返回 a SecondActivity?如果只有一个String,只需返回一个String []包含那个的 a String。使用相同的键返回两种不同类型的对象似乎是糟糕的设计......

于 2013-03-14T22:27:14.917 回答
1

我会把它们放在不同的键中。类似于和element的东西。StringelementsString[]

String[] result =data.getStringArrayExtra("elements");
if(result == null)
   String strResult = data.getStringExtra("element");

我也支持史蒂文所说的。但是不知道你的应用程序的设计以及你这样做的原因,所以你必须做出选择。

于 2013-03-14T22:31:20.730 回答
0

你几乎做到了..只是检查

if(result != null)
   // it is array 
于 2013-03-14T22:25:52.617 回答