键字符串数组期望String []但值是java.util.ArrayList

时间:2013-05-06 12:41:26

标签: android android-intent arrays

我是新手。

如何使用Intent ??

将数组值从一个类获取到另一个类

我试过这样...... 第一项活动......

 Intent videointent = new Intent(Focusarea.this,Videoplayer.class);
 videointent.putExtra("string-array", resim_list);
 startActivity(videointent);

第二项活动

     Intent intent=getIntent();
    String [] Array = intent.getStringArrayExtra("string-array");

我得到这个作为警告,我得到null作为第二秒活动的值..

     W/Bundle(521): Key string-array expected String[] but value was a 
     java.util.ArrayList.  The default value <null> was returned.
     W/Bundle(521): Attempt to cast generated internal exception:
     W/Bundle(521): java.lang.ClassCastException: java.util.ArrayList
     W/Bundle(521):     at android.os.Bundle.getStringArray(Bundle.java:1459)
     W/Bundle(521):     at 
     android.content.Intent.getStringArrayExtra(Intent.java:3630)
      W/Bundle(521):    at 
     com.example.TEENEINSTIEN.Videoplayer.onCreate(Videoplayer.java:20)
      W/Bundle(521):    at 
      android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)

2 个答案:

答案 0 :(得分:1)

使用Bundle

Bundle bundle = new Bundle();
bundle.putStringArray("string-array", resim_list);
videointent.putExtras(bundle);

而不是Videoplayer活动:

Bundle bundle = getIntent().getExtras();
String [] myStringArray = bundle.getStringArray("string-array");

编辑:如果resim_listString[]中有ArrayList,则问题有点无法解决。 如果resim_listArrayList

bundle.putStringArrayList("string-array", resim_list);

存储它和

 bundle.getStringArrayList("string-array")

检索它

答案 1 :(得分:0)

也许你的resim_list实例是一个ArrayList

你应该存储一个String []:

videointent.putExtra("string-array", resim_list.toArray(new String[resim_list.size()]));