我有三个活动EmpSearch,SearchResults和EmpDetails。
当我点击EmpSearch活动中的搜索按钮时,我将使用意图将EmpSearch活动的输入值发送到SearchResults活动。在SearchResults活动中,我将收到的输入值传递给后端(OData服务)并在Listview中显示结果。当我单击Listview项目时,我将导航到EmpDetails活动。当我在EmpDetails活动中单击模拟器后退按钮时,我能够看到列表中填充了先前在SearchResults活动中获取的数据。到目前为止一切正常。
我正在使用滑动手势从Details活动中获取SearchResults活动,如下所示:
@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活动中显示空列表。 如何获得与模拟器后退按钮相同的行为。
请帮帮我。
答案 0 :(得分:0)
我认为如果您在onBackPressed()
newPages()
方法中致电Details activity
,我们的问题就可以解决
private void newPages() {
onBackPressed();
}
答案 1 :(得分:0)
像这样覆盖你的点击监听器以获取后退按钮
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
newPages();
}
在EmpDetails活动中添加以上方法
答案 2 :(得分:0)
后退按钮仅完成当前活动并从后堆栈中带来先前的活动。在newPages()方法中,而不是创建新的Intent,只需调用“finish();”。这将结束当前活动并开始上一个活动。