Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以确定从活动发回的数据是字符串还是字符串[]?_Java_Android_Android Intent_Android Activity - Fatal编程技术网

Java 是否可以确定从活动发回的数据是字符串还是字符串[]?

Java 是否可以确定从活动发回的数据是字符串还是字符串[]?,java,android,android-intent,android-activity,Java,Android,Android Intent,Android Activity,我正在从我的main活动启动activityForResult()。根据用户在SecondActivity中选择的选项之一,它将返回字符串或字符串[]。在myMainActivity中,我覆盖了onActivityResult(),但是如何首先测试返回的数据,以确定它是字符串还是字符串[],以便我可以相应地处理它 这就是我处理阵列的方式: protected void onActivityResult(int requestCode, int resultCode, Intent data) {

我正在从我的
main活动启动
activityForResult()
。根据用户在
SecondActivity
中选择的选项之一,它将返回
字符串或
字符串[]
。在my
MainActivity
中,我覆盖了
onActivityResult()
,但是如何首先测试返回的数据,以确定它是
字符串还是
字符串[]
,以便我可以相应地处理它

这就是我处理阵列的方式:

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());
            }
            }
activityresult上受保护的void(int-requestCode、int-resultCode、Intent-data){
//TODO自动生成的方法存根
String[]result=data.getStringArrayExtra(“元素”);
et.setText(“”);

对于(inti=0;i你几乎做到了..只要检查一下

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

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

我会将它们放在不同的键中。 类似于
元素
字符串
,以及
元素
字符串[]

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

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

谢谢大家的回答。Steven你说得很好。谢谢。我会接受你的回答,但我还要再等5分钟:)