【问题标题】:passing data from an Activity to another Activity Android将数据从 Activity 传递到另一个 Activity Android
【发布时间】:2017-04-05 20:48:16
【问题描述】:

这是我的课:

public class Asset extends  BaseModel implements Serializable{...}

在一个活动中我有这个:

private void openAssignAssetIntent(String actionType){
    Intent assignAssetIntent = new Intent(this,AssignAssetActivity.class);
    assignAssetIntent.putExtra("currentAsset",currentAsset);
    startActivity(assignAssetIntent);
}

我正在尝试从另一个 Activity 中获取此值(“currentAsset”),如下所示:

Asset asst = (Asset) getIntent().getSerializableExtra("currentAsset");

但我得到了这个例外:

java.lang.RuntimeException: Parcelable遇到IOException写入可序列化对象

我做错了什么?

【问题讨论】:

  • 什么样的异常?
  • java.lang.RuntimeException: Parcelable遇到IOException写入可序列化对象
  • 给出错误的完整堆栈跟踪。
  • 您是否将对象从一个活动传递到另一个活动?

标签: android android-intent


【解决方案1】:

改用Bundle

Bundle bundle = new Bundle();
bundle.putSerializable("currentAsset", currentAsset);
Intent assignAssetIntent = new Intent(this,AssignAssetActivity.class);
assignAssetIntent.putExtras(bundle);
startActivity(assignAssetIntent);

然后像这样检索它

Intent intent = this.getIntent();
Bundle bundle = intent.getExtras();

Asset asset = (Asset) bundle.getSerializable("currentAsset");

希望对你有帮助

【讨论】:

  • @VladMatvienko 不,他没有使用 Bundle,请考虑再次阅读代码
  • @VladMatvienko 他也没有使用 putSerializable
  • @VladMatvienko 没问题 ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-08
  • 2020-10-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多