0

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

请帮我。

4

3 回答 3

0

像这样覆盖后退按钮的点击侦听器

@Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        super.onBackPressed();
            newPages();
    }

在 EmpDetails 活动中添加上述方法

于 2013-10-21T08:59:26.967 回答
0

我认为如果您调用onBackPressed()innewPages()方法,您的问题可能会得到解决Details activity

private void newPages() {

    onBackPressed();

}
于 2013-10-21T08:54:43.153 回答
0

后退按钮仅完成当前活动并将上一个活动从返回堆栈中取出。在你的 newPages() 方法中,而不是创建新的 Intent,只需调用“finish();”。这将结束当前活动并开始前一个活动。

于 2013-10-21T09:02:47.117 回答