我将意图中的包从一个类传递到另一个类。但是在收到它时我得到的错误就像是“readBundle:bad magic number”。这是一段代码片段
从A组传递捆绑包:
Intent intent = new Intent();
Bundle b1=new Bundle();
b1.putString("STORE_STATUS", "true");
b1.putParcelableArrayList("ParticularStoreInfo", particularStoreInfoArr);
intent.putExtra("BundleData", b1);
intent.setAction(Tag);
context.sendBroadcast(intent);
在B级接收它:
bundle = intent.getBundleExtra("BundleData");
if(bundle!=null){
String SEARCH_STATUS = bundle.getString("STORE_STATUS");// error on this line
if(SEARCH_STATUS.equalsIgnoreCase("true")){
}
答案 0 :(得分:1)
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
String SEARCH_STATUS = bundle.getString("STORE_STATUS");
if (datas!= null) {
// do stuff
}
已编辑:
要将数据发送到活动,请使用此:
Intent intent = new Intent();
intent.putExtra("STORE_STATUS", "SOME DATAS");
回答您的问题:
要使用Bundle与Intent一起发送数据,您必须使用它:
Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.extras.putString(key, value);
mIntent.putExtras(mBundle);
答案 1 :(得分:0)
意图从一个组件发送到另一个组件(不在两个类之间) 一般来说)。假设B是广播接收器(你已经使用过 sendBroadcast)和A作为发送者,B必须接收后的意图 sendBroadcast()。
您使用过putExtra,putString和putParceableArrayList。所以关于 接收方,尝试使用getExtra,getString和 getParceableArrayList。
如果您尝试在接收方法上使用intent的包 没有意图作为参数,你可以使用getIntent()..
如果您对此答案感到困惑,请发布您的完整或 您要解析的示例代码,否则忽略。