保留Android活动状态

时间:2013-10-21 08:37:10

标签: android listview android-intent android-activity swipe

我有三个活动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活动中显示空列表。 如何获得与模拟器后退按钮相同的行为。

请帮帮我。

3 个答案:

答案 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();”。这将结束当前活动并开始上一个活动。