2013-10-21 228 views
0

我有三個活動EmpSearch,SearchResults和EmpDetails。保留Android活動狀態

當我點擊EmpSearch活動中的搜索按鈕時,我使用intent將EmpSearch活動的輸入值發送到SearchResults活動。在SearchResults活動中,我將收到的輸入值傳遞給後端(OData服務)並在Listview中顯示結果。當我點擊Listview項目時,我將導航到EmpDetails活動。當我點擊EmpDetails活動中的模擬器後退按鈕時,我能夠看到填充了先前在SearchResults活動中提取的數據的列表。現在一切正常。

我使用滑動手勢來從細節活動SearchResult所活動,如下圖所示:

@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活動導航回到SearchResult所活動,它是在SearchResults活動中顯示空列表。 如何獲得與仿真器後退按鈕相同的行爲。

請幫幫我。

回答

0

我想,如果你打電話onBackPressed()中的Details activity

private void newPages() { 

    onBackPressed(); 

} 
+0

謝謝穆克什。它爲我工作。 – user2740599

+0

我還有一個疑問。在我的應用程序主屏幕上,當我按下後退按鈕時,我應該發出類似「你想退出嗎?」的警報。我怎樣才能做到這一點。 – user2740599

+0

嗨Mukesh,通過在我的newPages()方法中調用finish()方法,它也適合我。我的問題是哪一個是好的做法。請清除我的疑問。 – user2740599

0

取代您的點擊偵聽器的後退按鈕這樣

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

newPages()的方法添加上述方法在EmpDetails活動你的問題可能得到解決

0

後退按鈕僅完成當前活動並將前一活動從b ack stack。在您的newPages()方法中,而不是創建新的Intent,只需調用「finish();」。這將結束當前活動並開始前一個活動。