如何在经过几次之后再回到初始活动?

时间:2017-04-16 21:47:26

标签: android listview android-activity gridview

我有一项可以通过不同活动访问的活动。 就像你有一个包含listview的活动,第二个包含gridview,它们都显示相同的数据。单击某个项目时,将显示包含某些详细信息的新活动。我需要以某种方式记住哪个活动是初始活动(使用gridview或listview),以便我可以设置一个按钮来重定向。但仅仅返回到之前的活动(例如使用finish()来关闭当前活动)是不够的,因为有一种方法可以在细节活动内部导航不同的对象(我在该屏幕上有一个gridview)。因此,我需要记住在细节活动中移动多次的初始视图。 有办法吗?

编辑:omg为什么这么多的downvotes?至少告诉我为什么它是如此愚蠢,我正在学习Android的编码2周我怎么知道一切?

3 个答案:

答案 0 :(得分:3)

这听起来最好通过在同一Activity

内使用两个Fragments来解决

答案 1 :(得分:0)

您可以使用bundle对象将数据传递给新活动(B),这样您就可以知道活动(listView或gridView)已启动它。

在活动B中:

private static final String ACTIVITY_TYPE = "activity_type";

public static Intent createIntent(Context context,String activityType)
{
    Intent intent = new Intent(context, ActivityB.class);
    Bundle b = new Bundle();
    b.putString(ACTIVITY_TYPE,activityType);
    intent.putExtras(b);
    return intent;
}

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    Bundle b = getIntent().getExtras();
    String activityType;
    if (b != null)
    {
        activityType = b.getString(ACTIVITY_TYPE);
    }
    //the calling activity didn't use the createIntent method and didn't provide the activity type 
    else
    {
        activityType = "some_default_type";
    }

    //save activity type to use later
    //rest of your code
}

在通话活动中:

Intent intent = ActivityB.createIntent(ActivityListView.this,"activity_list_view");
startActivity(intent);

答案 2 :(得分:-1)

你应该以非常相反的顺序从活动中走出来,然后你就到了那一点,如果你计划以意图回去 - 这就是愚蠢....