Sil*_*ely 1 java android parcelable parceler
我决定使用Parceler,因为它看起来像一个很棒的库,并且得到了作者的很好支持。我正在使用Parceler包装一个对象,并将其传递给捆绑包中的另一个Activity。当我尝试打开对象包装时,出现错误:android.os.Bundle cannot be cast to org.parceler.ParcelWrapper
我的FirstActivity代码:
User user = responseData.getUser();
Bundle bundle = new Bundle();
bundle.putParcelable("User", Parcels.wrap(user));
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("User", bundle);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
我的SecondActivity代码:
User user = Parcels.unwrap(this.getIntent().getParcelableExtra("User"));
Run Code Online (Sandbox Code Playgroud)
我怀疑这只是一个新手错误。任何建设性的帮助表示赞赏!
您只需要将包装的对象作为的参数putExtra,而不是Bundle。这是解决方案:
User user = responseData.getUser();
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("User", Parcels.wrap(user));
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
在SecondActivity上,在其onCreate()方法中执行以下操作:
User user = (User) Parcels.unwrap(getIntent().getParcelableExtra("User"));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
925 次 |
| 最近记录: |