67
我想一個HashMap通過使用intent.puExtra功能的新活動。步進通過調試似乎它增加了HashMap中沒有問題,但是當startActivty()被調用時,我得到一個運行時錯誤,指出包裹:不能編組值com.appName.Liquor。AndroidRuntime錯誤:包裹:不能編組值
酒是我創建了一個自定義類,而且我相信,在一個HashMap的組合,導致了問題。如果我傳遞一個字符串而不是我的HashMap,它會加載下一個活動沒有問題。
主要活動
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String cat = ((TextView) view).getText().toString();
Intent i = new Intent(OhioLiquor.this, Category.class);
i.putExtra("com.appName.cat", _liquorBase.GetMap());
startActivity(i);
酒類
public class Liquor
{
public String name;
public int code;
public String category;
private HashMap<String, Bottle> _bottles;
public Liquor()
{
_bottles = new HashMap<String, Bottle>();
}
public void AddBottle(Bottle aBottle)
{
_bottles.put(aBottle.size, aBottle);
}
}
子活動
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
HashMap<Integer, Liquor> map = (HashMap<Integer, Liquor>)getIntent().getSerializableExtra("com.appName.cat");
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, GetNames(map)));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
當運行時錯誤存在,它從不使它到子活動類。所以我非常確定問題存在於將HashMap添加到意圖中,並且基於錯誤,我相信我的Liquor類是原因,但我無法弄清楚原因。
您的幫助將不勝感激。謝謝!
謝謝,我不得不將實現Serializable添加到Liquor和Bottle類。 – Jared 2010-09-30 15:37:34
它的工作..我必須在Bottle類中實現Serializable。謝謝@naikus – 2014-01-21 08:48:59
酒始終是責備:)) – 2014-07-04 10:43:02