Android返回按钮返回搜索结果?

时间:2012-09-26 15:11:01

标签: android

在我的Android应用程序中,我有一个搜索界面,可以点击每个列表项,启动一个新的活动,显示该单个项目的更多信息。我在新活动上有一个后退按钮,我想回到搜索结果列表。我已经尝试了一个可以追溯到搜索页面的意图,但这会启动一个新的搜索:

    Intent backIntent = new Intent(v.getContext(), SearchPage2.class); 
backIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivityForResult(backIntent, 0);
SearchTaDa.this.finish();

我还尝试了SearchTaDa.this.finish();finish();,但这两个都关闭了整个应用。有没有人知道如何通过单击“后退”按钮返回搜索结果?

4 个答案:

答案 0 :(得分:0)

执行不使用此代码,因为它会删除堆栈中的所有活动

backIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

请改用此代码:

Intent backIntent = new Intent(v.getContext(), SearchPage2.class); 
startActivityForResult(backIntent, 0);
SearchTaDa.this.finish();

答案 1 :(得分:0)

只需执行此操作并尝试按SearchPage2上的后退按钮

Intent backIntent = new Intent(v.getContext(), SearchPage2.class); 
startActivityForResult(backIntent, 0);

不要清除堆栈,也不要在前一个堆栈上调用完成。

答案 2 :(得分:0)

我认为问题出在您的其他活动中,您可以从中启动详细信息活动。也许你在启动新的Activity后调用finish(),将它从Stack中移除,所以你不能回到它。 然后,您应该能够在第二个Activity中使用finish()返回。

答案 3 :(得分:0)

基本上,您希望按钮模拟设备的BACK按钮,因为按设备的BACK按钮会返回搜索结果活动。

不确定它是否会起作用,但这是一个诀窍:
在您的“更多信息”活动中覆盖调用onBackPressed()的{​​{1}}方法,然后在您点击监听器中调用putton:super.onBackPressed()

onBackPressed()

在启动“更多信息”活动时删除@Override public void onBackPressed() { super.onBackPressed(); } //......... myBackButton.setOnClickListener(new OnClickListener(){ public void onClick(){ onBackPressed() } });