通过使用 parcelable,尝试将一个数组列表添加到另一个数组列表中,得到错误"the method add is not applicable for the arguments"



我有一个活动(第一个活动):

ArrayList <MyDouble> myfinals=new ArrayList <MyDouble>();
...
i.putParcelableArrayListExtra("myfinals",myfinals);
...
 public static class MyDouble implements Parcelable {
            Double al;

            public MyDouble(Parcel source){
                al = source.readDouble();
            }
            public MyDouble(Double val){
                al = val;
            }
            @Override
            public int describeContents() {
                // TODO Auto-generated method stub
                return this.hashCode();
            }
            @Override
            public void writeToParcel(Parcel dest, int flags) {
                // TODO Auto-generated method stub
                dest.writeDouble(al);
            }
            public Double getValueDouble(){
                return this.al;
            }
            public static final Parcelable.Creator<MyDouble> CREATOR = new Parcelable.Creator<MyDouble>() {
                @Override
                public MyDouble createFromParcel(Parcel source) {
                    // TODO Auto-generated method stub
                    return new MyDouble(source);
                }
                @Override
                public MyDouble[] newArray(int size) {
                    // TODO Auto-generated method stub
                    return new MyDouble[size];
                }
            };
        }

在另一项活动中:

ArrayList <MyDouble> myfinals=new ArrayList <MyDouble>();
ArrayList<Double> y =new ArrayList<Double>();
...
 for (int i=0;i<=100;i++){
          y.add(myfinals.get(i)); 
       } 

我正试图将"myfinally"添加到y但它给了我一个错误"add方法不适用于参数的firstactivity.MyDouble".

这应该有效:

for (int i=0;i<=100;i++){
    y.add(myfinals.get(i).getValueDouble()); 
} 

Double和MyDouble不是同一个对象。ArrayList y需要一个Double对象,而您正试图向其中添加一个MyDouble对象。

相关内容

最新更新