我在跨Intent解析一個Parcelable時遇到問題。解組一個Parcelable時發生ClassNotFoundException
我創建使用
Intent data = new Intent();
data.putExtra(ShoppingListAdapter.parcelName, la);
setResult(Activity.RESULT_OK, data);
parcelable我收到它在onActivityResult:
Parcelable myData = data.getParcelableExtra(ShoppingListAdapter.parcelName);
然後用它傳遞到另一個活動:
Intent myIntent = new Intent(this,Class.class);
myIntent.putExtra("myData", myData);
startActivityForResult(myIntent, RESULT);
我Parcelable有另一個Parcelable內我寫和讀uisng:
list = in.readParcelable(null);
我一直在使用不同的類加載器,從ClassLoader.getSystemLoader()來MyClass.class.getClassLoader(),但我仍然得到一個運行時異常嘗試:
06-12 21:13:04.940: ERROR/AndroidRuntime(29962): Caused by: android.os.BadParcelableException: ClassNotFoundException when unmarshalling:
是我的包裹在此之前某處損壞還是我讀錯了?
Alex
你想傳遞一個ListAdapter執行回的結果呢? (變量名'la'對我來說看起來很可疑:)) – 2011-06-12 20:42:40
嗯,是的,沒有。我傳遞適配器中保存的數據。所以它會將各種數據中的各種數據放平。它適用於配置更改,其中我完全一樣但是將其保存到savedInstance而不是Intent中。那是問題嗎?我以爲我只是把它裏面的數據弄平了。 – Alex 2011-06-13 10:33:09