2014-09-23 36 views
-3

我的項目中有2項活動。我想在按下後退按鈕時調用新的活動。我爲此嘗試了onBackPressed(),onKeyDown()。我的代碼如下。我在谷歌搜索這個,但沒有爲我工作。onBackPressed()不調用新活動

@Override 
    public void onBackPressed() { 
     // TODO Auto-generated method stub 
     Log.d("update", is_updated.toString()); 
     if(is_updated){ 
      Intent i = new Intent(ProductDetailsActivity.this,ProductListActivity.class); 
      startActivity(i); 
      finish(); 
      is_updated = false; 
     }else { 
      finish(); 
     } 
    } 

我登錄值「is_update」,連值是「真」它不是調用ProductListActivity.class,相同的代碼工作按鈕click.How我可以調用onBackpressed新活動() , 誰能幫我。

+0

你爲什麼要開始一項新的活動。後退按鈕設想帶您前一個活動 – Raghunandan 2014-09-23 07:21:35

+0

我知道,我想更新以前活動中的一些數據 – 2014-09-23 07:24:33

+3

,然後使用'startActivityForResult'將 – Raghunandan 2014-09-23 07:25:54

回答

1

@Raghunandan說。我在這裏解釋他的話。如果要更新以前activity數據,你應該使用startActivityForResult這個你叫finish()override finish()和使用setResult(RESULT_OK),如:

@Override 
    public void onBackPressed() { 
     // TODO Auto-generated method stub 
     Log.d("update", is_updated.toString()); 
     if(is_updated){ 

      finish(); 
      is_updated = false; 
     } 
    } 

@Override 
    public void finish() { 
     super.finish(); 

     Intent intent = new Intent(); 
     intent.putExtra("updated_data", "data");//set whatever your updated data is 
     setResult(RESULT_OK, intent); 
    } 

現在又回到了以前的activity覆蓋onActivityResult方法。我想你知道onActivityResult方法和它的用法,如果沒有讀它here

希望你會得到理想的結果。

+0

我不希望從該活動的數據,如果在第二個活動(到服務器)的任何更新,我想重新啓動第一個活動回按鈕按下。 – 2014-09-23 07:47:27

+0

你沒有在你的問題中提到關於更新到服務器的數據... – XtreemDeveloper 2014-09-23 07:52:32

+0

但我提到,我想在onbackpressed() – 2014-09-23 07:53:54

相關問題