class A implements  Parcelable
{
    public String[]  sss; 
    public A(String[] s)
    {
         sss = s;
    }
    public int describeContents() {
// TODO Auto-generated method stub
return 0;
} @Override
public void writeToParcel(Parcel dest, int flag) {
// TODO Auto-generated method stub
dest.writeStringArray(sss);
        }
   public static final Parcelable.Creator<A> CREATOR  
    = new Parcelable.Creator<A>(){ @Override
public A  createFromParcel(Parcel source) {
// TODO Auto-generated method stub
                        String val = null;      //这里??
                        source.readStringArray(val);
A    a = new SegmentLineAttr(val); return m;
} @Override
public A[] newArray(int size) {
// TODO Auto-generated method stub
return new A[size];
}

};
}两外Activity的调用我就是不详细写了
activity1:a = ( A) mNativeApi.InitDeviceAttribute( ); //返回一个实例
Intent miIntent = new Intent( superContext, activity2.class );
miIntent.putExtra("key", a);
superContext.startActivity( miIntent );activity2:Intent intent = getIntent();
ml = intent.getParcelableExtra("key"); 
在activity2 获取资源的时候就直接异常了,  个人感觉好像是因为我的class A 的问题;
因为如果我把class 改成:class A implements Parcelable
{
  //把String[] 改成 string 类型, 响应的改动不在写出
}这样的操作就没问题, 所以 请教各位大神 问题到底在哪里? 是不是 createFromParcel 方法里面 String[] 我置null 问题?

解决方案 »

  1.   

    你还需要一款 Parcel为参数的构造函数
      

  2.   

            @Override
            public A  createFromParcel(Parcel source) {
                // TODO Auto-generated method stub
                            String val = null;      //这里??
                            source.readStringArray(val);
                A    a = new SegmentLineAttr(val);
     
                return m;
            }m 是什么???return的?