0
我想問什麼,我做錯了,如果我想這樣的數據傳遞給其他類:其他活動我傳遞<?> Class對象給其他活動的載體 - 在Android的
String [] codes = {"code"};
Class<?> [] classes = { TestActivity.class };
Intent i = new Intent();
Pack p = new Pack();
p.eat(classes,codes);
i.putExtra("com.mbar", p);
i.setClass(this, CaptureActivity.class);
startActivity(i);
}
}
後來嘗試解壓這樣的:
Bundle b = getIntent().getExtras();
Pack p = (Pack)b.getParcelable("com.mbar");
if(p!=null){
classes = p.getClasses();
codes = p.getNames();
的包類,這是Parcelable樣子:
package com.mbar;
import android.os.Parcel;
import android.os.Parcelable;
public class Pack implements Parcelable {
Class<?>[] classes;
String [] codes;
public void eat(Class<?>[] classes,String [] codes){
this.classes = classes;
this.codes = codes;
}
public Class<?>[] getClasses(){
return this.classes;
}
public String [] getNames(){
return this.codes;
}
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
}
}
以及你的Parcelable的實現不讀或寫東西來包裹所以...這就是爲什麼類和編解碼器爲空 – Selvin
第二...是我寫在我的第一(刪除)評論類是不parceable所以...你必須在writeToParcel和構造函數Pack(Parcel in)中編寫類全名,您必須讀取classnamestring並使用Class.forName(classnamestring)來重建您的Class數組 – Selvin