我可以在Android活动中使用这样的意图吗?

时间:2016-09-01 16:23:24

标签: android android-intent

我的活动溢出图如下:

Main_Activity ---> Detail_Activity ---> Expandablelist_Activity 使用意图总是通过这个代码块完成

Intent intent = new Intent(mContext,DetailActivity.class)
                    .putExtra("movieInfo",feedItem);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);

但是,我想设置我的意图从Expandablelist_Activity开始,这将通过Detail_Activity达到,.putExtra("movieInfo",feedItem);在Main_Activity中,所以我想设置这个意图的代码块

Intent intent = new Intent(mContext,DetailActivity.class)
                    .putExtra("movieInfo",feedItem);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
Intent intent_reviews = new Intent(mContext,Expandablelist.class)
        .putExtra("movieInfo",feedItem);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

不使用mContext.startActivity(Expandablelist_Activity.class);方法,只是为了在显示Detail_Activity后稍后使用时将所需的数据对象传递给Expandablelist Activity。

任何人都可以告诉我这一步是否属实,如果错误,我怎样才能在以后的活动中获得意图而不启动它。在此之前,您的回复将受到赞赏。

1 个答案:

答案 0 :(得分:0)

假设您有MainActivityDetailActivityExpandableActivity。从您的问题看起来就像您尝试执行以下操作:

  • MainActivity开始DetailActivity和路径movieInfo作为意图有效负载。
  • 然后从DetailActivity开始ExpandableActivity使用相同的有效负载。

如果我正确理解了您的问题,您需要执行以下操作:

MainActivity

Intent intent = new Intent(mContext,DetailActivity.class)
                .putExtra("movieInfo",feedItem);
startActivity(intent);

DetailActivity

//When you want to open ExpandableActivity with same payload
Intent intent = getIntent();
if(intent != null) {
   intent.setClass(this, ExpandableActivity.class);
   startActivity(intent);
}

ExpandableActivity

Intent intent = getIntent();
if(intent != null) {
   //Use extra
}