我正在尝试为我的应用实施高效导航;基本上它是产品目录,我的意思是:
列出产品 - >详情 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();
}
}
完成细节我回到列表....我不知道它是否可以,但我喜欢它!
答案 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启动产品详细信息,则可以从搜索活动中返回产品活动的数据。
我猜这是你想要的?