2014-12-08 34 views
1

,我應該如何檢查數據更改?當我嘗試編輯數據表單並且單擊編輯並轉到下一個活動並更新數據並轉到通過開始新活動回到以前的活動。 問題是,當我按回按鈕它顯示以前的結果。 關於我使用的編輯活動。Android:如果我在下一個活動中編輯數據並返回到上一個

finish() 

完成編輯活動的功能。 我如何刷新以前的活動。

回答

0
class MyActivity extends Activity { 
    static boolean active = false; 

     @Override 
     public void onStart() { 
     super.onStart(); 
     active = true; 
     } 

     @Override 
     public void onStop() { 
     super.onStop(); 
     active = false; 
     } 
    @Override 
    public void onResume() { 
      super.onResume(); // Always call the superclass method first 

     if (someflag == true) { 
     // code to refresh activity 
     } 
    } 
} 

設置一些標誌來檢查簡歷,如果爲true,則刷新活動

+0

感謝adnan這將爲我工作 – 2014-12-08 10:01:42

1

在您的程序中創建此功能,這是爲了重寫您現有的後退按鈕按下。

@Override 
    public void onBackPressed() { 
     // TODO Auto-generated method stub 

      Intent intent = new Intent(CurrentActivity.this,PreviousActivity.class); 
      intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
      startActivity(intent); 
      finish(); 

    } 
+0

謝謝Remeees M Syde – 2014-12-08 10:02:54

+0

歡迎兄弟。 :) – 2014-12-08 10:12:31

1

,如果您使用的是ListView你不說,但是讓我們假設這樣。在這種情況下,在第一項活動中,您可能需要在onResume中添加一條線,如myListView.notifyDataSetChanged()。否則,我認爲你只是從內存中取回第一個活動(即它在數據更改之前的狀態)。

1

當你打開一個新的活動,編輯你應該使用startActivityForResult這樣

Intent i = new Intent(this, EditActivity.class); 
startActivityForResult(i, 1001); 

而在其他活動完成編輯後,當您應該

Intent returnIntent = new Intent(); 
returnIntent.putExtra("result",true); 
setResult(RESULT_OK,returnIntent); 
finish(); 

然後在第一個活動,你應該覆蓋onActivityResult

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (requestCode == 1001) { 
     if(resultCode == RESULT_OK){ 
      //updated your listview here 
     } 
    } 
} 

此更新s的列表視圖如果數據發生變化

相關問題