在我的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();
,但这两个都关闭了整个应用。有没有人知道如何通过单击“后退”按钮返回搜索结果?
答案 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()
}
});
。