![](/img/trans.png)
[英]Pass data from Activity to Fragment in another Activity
[英]Pass data object to an Activity from another activity (Fragment -> its Activity-> new Activity)
我已经创建了名为“ EventFragment”的listFragment类,并且需要在其click事件上传递数据对象以传递抽屉活动类(片段类),然后我需要将该对象传递给另一个名为EventDisplayActivity类的活动。 我可以将get数据对象管理到抽屉活动类,但不能将其发送到EventDisplayActivity类。
//DrawerActivity code
@Override
public void OnEventItemClick(ZEvent zEventObject) {
Log.i("URI uri", ""+zEventObject.getEventName());
zEventItem = (ZEvent)zEventObject;
Bundle b = new Bundle();
b.putParcelable("EVENT_ITEM", zEventItem);
Intent i = new Intent(DrawerActivity.this, EventDisplayActivity.class);
i.putExtra("DUMMY","dummytext");
i.putExtras(b);
startActivity(i);
}
// EventDisplayActivity
@Override
protected void onInit(ModelBase... data) {
System.out.println("onInit() Called in Event Display Activity");
SharedPreferences sessionkey = getApplicationContext().getSharedPreferences("session_detail", Context.MODE_PRIVATE);
session_token = sessionkey.getString("session", "");
logged_user_type = sessionkey.getString("user_type", "");
logged_user_id = sessionkey.getString("user_id", "");
Intent i = getIntent();
Bundle extras = i.getExtras();
ZEvent zEventbundle = extras.getParcelable("EVENT_ITEM");
mProposalId = zEventbundle.getProposalID();
String mDummy = getIntent().getStringExtra("DUMMY");
Log.i("id>>>",""+mProposalId +"Dummy"+mDummy);
params = new RequestParams();
params.put("token", session_token);
params.put("proposal_id", mProposalId);
mApiClient.getView(eventViewURL, params, eventResponse);
}
//LOgCat
java.lang.RuntimeException: Unable to start activity
ComponentInfo{gg.zing/gg.zin.zing.events.activities.EventDisplayActivity}: java.lang.NullPointerException
Caused by: java.lang.NullPointerException
at gg.zin.zing.events.activities.EventDisplayActivity.onInit(EventDisplayActivity.java:431)
我假设您的ZEvent实现了Parcelable ...如果这样做,则使用putExtra(而不是创建新的Bundle和使用putExtras)放入意图中,并使用getParcelableExtra提取相同的方法。
// Put final Intent intent = new Intent(context, <class>); intent.putExtra("MY_EVENT", obj); // <-- Should be parcelable
// Get.
ZEvent obj = intent.getParcelableExtra("MY_EVENT");
您还可以在用于将数据保存在静态字段中的类中定义静态属性。
public class AppData{
public static String user = "Ben";
}
您可以像这样使用它:
public void setUser(String user){
AppData.user = user;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.