保存Android活动状态
我有三个活动EmpSearch、SearchResults和empsdetails 当我单击EmpSearch活动中的搜索按钮时,我正在使用intent将EmpSearch活动的输入值发送到SearchResults活动。在SearchResults活动中,我将接收到的输入值传递给后端(OData服务),并在Listview中显示结果。当我单击Listview项目时,我将导航到EmpDetails活动。当我在EmpDetails活动中单击emulator back按钮时,我能够看到填充了以前在SearchResults活动中获取的数据的列表。到目前为止,一切正常 我正在使用滑动手势从详细信息活动进入SearchResults活动,如下所示:保存Android活动状态,android,listview,android-intent,android-activity,swipe,Android,Listview,Android Intent,Android Activity,Swipe,我有三个活动EmpSearch、SearchResults和empsdetails 当我单击EmpSearch活动中的搜索按钮时,我正在使用intent将EmpSearch活动的输入值发送到SearchResults活动。在SearchResults活动中,我将接收到的输入值传递给后端(OData服务),并在Listview中显示结果。当我单击Listview项目时,我将导航到EmpDetails活动。当我在EmpDetails活动中单击emulator back按钮时,我能够看到填充了以前在S
@Override
public void onSwipe(int direction) {
String str = "";
switch (direction) {
case SimpleGestureFilter.SWIPE_RIGHT : str = "Swipe Right";
newPages();
break;
case SimpleGestureFilter.SWIPE_LEFT : str = "Swipe Left";
break;
case SimpleGestureFilter.SWIPE_DOWN : str = "Swipe Down";
break;
case SimpleGestureFilter.SWIPE_UP : str = "Swipe Up";
break;
}
}
private void newPages() {
Intent swipeRight = new Intent(this, SearchResults.class);
swipeRight.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(swipeRight);
finish();
}
现在,当我在EmpDetails活动中向右滑动导航回SearchResults活动时,它在SearchResults活动中显示空列表。
如何获得与emulator back按钮相同的行为
请帮帮我 如果您在
newPages()中调用onBackPressed()
inDetails活动的方法,我认为您的问题可能会得到解决
private void newPages() {
onBackPressed();
}
像这样覆盖“单击侦听器返回”按钮
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
newPages();
}
在EmpDetails活动中添加上述方法后退按钮仅完成当前活动,并将上一个活动从后堆栈中带出。在newPages()方法中,只需调用“finish();”,而不是创建新的意图。这将结束当前活动并开始上一个活动。我还有一个疑问。在我的应用程序主屏幕上,当我按下“上一步”按钮时,会出现类似“是否要退出”的警报。我怎样才能做到这一点呢?嗨,Mukesh,在我的newPages()方法中调用finish()方法,对我来说也很好。我的问题是哪一个是好的实践。请澄清我的疑问。您可以使用两者中的任何一个,因为两者都使用活动的最后一个finish
。若要在主屏幕上创建对话框,请覆盖该活动中的public void onBackPressed()
,并按照建议的链接创建对话框。您还可以创建一个简单的警报对话框,如@user2740599所示,查看此处关于backPressed()