intent getSerializableExtra ClassCastException

时间:2018-01-13 16:56:07

标签: java android android-intent

在我的应用中,我有这一行:

Item item = (Item)getIntent().getSerializableExtra(ITEM_TRANSFER);

我得到的错误是:引起:java.lang.ClassCastException:java.lang.Long无法强制转换为com.example.shop.Item

Item Class实现Serializable,所以我不知道问题是什么。

@Override

public void onItemClick(View view, int position){
    Intent intent = new Intent(this, ItemDetailActivity.class);
    intent.putExtra(ITEM_TRANSFER, mRecyclerViewAdapter.getItemId(position) );
    startActivity(intent);
}

这就是我使用Extra的方式

1 个答案:

答案 0 :(得分:1)

发送Item值,而不是传递getItemId()

@Override

public void onItemClick(View view, int position){
    Intent intent = new Intent(this, ItemDetailActivity.class);
    intent.putExtra(ITEM_TRANSFER, item);
    startActivity(intent);
}

接收

Item item = (Item)getIntent().getSerializableExtra(ITEM_TRANSFER);