【问题标题】:intent getSerializableExtra ClassCastException意图 getSerializableExtra ClassCastException
【发布时间】:2018-06-22 20:27:41
【问题描述】:

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

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

我得到的错误是: Caused by: java.lang.ClassCastException: java.lang.Long cannot be cast to 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 的方式

【问题讨论】:

  • 显示在您开始活动时在意图中添加额外内容的代码
  • getItemId() 返回一个long,异常信息说得很清楚

标签: java android android-intent


【解决方案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);

【讨论】:

    猜你喜欢
    • 2012-09-28
    • 2015-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 2012-05-02
    • 2013-02-10
    相关资源
    最近更新 更多