Android活动导航,返回上一个活动并返回'退出'

时间:2011-11-15 12:20:19

标签: android android-intent

我正在尝试为我的应用实施高效导航;基本上它是产品目录,我的意思是:

列出产品 - >详情 list Product(界面中的serach按钮 - startActivityForResult) - > searchAct(cal finish) - >返回列表产品(已过滤)

但我需要通过HW搜索按钮打开searchAct,也需要从详细信息中打开!

是否可以从详细信息中使用startActivityForResult打开searchAct,以及何时searchAct完成列表产品? 此外,如果我打开searchAct然后按回来我需要回到详细信息!

如果我总是使用:

startActivity()

然后用户需要反复按BACK按钮,查看所有步骤......

例如,如果用法如下:

list(startActivity) - > detail(startActivity) - > search(startActivity) - > list(startActivity) - > detail

后退按钮工作正常,但我必须退出5次退出!!

我试试:

list(startActivity) - > detail(startActivity和finish()) - > search(call finish()) - > list

但是这样,搜索中的后退按钮被“打破”,因为我需要列出详细信息......

也许我可以试试这个:

detail(startActivityForResult) - >搜索

详细说明如果我得到result_ok我完成()并返回列表,如果我得到result_cancel我会留下详细信息吗?


我想我明白了!在列表活动中,我有'经典'startActivityForResult然后'经典'onActivityResult

详细活动我用startActivityForResult启动serach然后:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
        finish();
    }
}

完成细节我回到列表....我不知道它是否可以,但我喜欢它!

2 个答案:

答案 0 :(得分:1)

很难理解你的问题是什么,所以我只是猜测你的需要。

在您的searchAct活动中,您可以返回以下数据:

Intent returnIntent = new Intent();
String strData = "your data";
returnIntent.putExtra("data", strData);
setResult(RESULT_OK, returnIntent);        
finish(); 

然后在您开始搜索活动的详细活动中,您有一个在searchAct完成时触发的功能。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {}

答案 1 :(得分:1)

从产品详细信息活动中,您将通过startActivityForResult开始搜索活动。在这种情况下,当搜索活动返回正确的代码时,您可以在产品详细信息活动的onActivityResult中调用finish()。

这样,产品详细信息将在搜索后完成,您将最终返回列表活动。

如果您也使用startActivityForResult启动产品详细信息,则可以从搜索活动中返回产品活动的数据。

我猜这是你想要的?