2013-01-20 66 views
1

我知道有些人提出這樣的問題,但沒有答案幫助我,和我是新android上:)刷新之前的活動

This answer能幫助我。但我無法弄清楚。

  1. 我有兩個活動:活動1和活性2
  2. 我去活性2使用button01

我想自動刷新當我回到活動1甚至使用物理後退按鈕。

活性1

public class Activity1 extends Activity { 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Button next = (Button) findViewById(R.id.Button01); 
     next.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       Intent myIntent = new Intent(view.getContext(), Activity2.class); 
       startActivityForResult(myIntent, 0); 
      }  
     });    
    } 
} 

活性2

的精心建議
public class Activity2 extends Activity { 

      /** Called when the activity is first created. */ 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main2);  
    } 
} 

類的請求...... 由於提前的代碼的代碼。

回答

1

由於您要求startActivityForResult(myIntent, 0)觸發第二個活動,當該活動完成時,無論觸發Activity2完成的操作如何,您的第一個活動都將收到回調onActivityResult()

public class Activity1 extends Activity { 

    /** ...The code you already wrote here... **/ 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
     //Do your update or refresh here... 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 

     //This method also gets called every time the Activity is 
     // moved into the foreground, you can call your refresh here as well. 
    } 
} 

如果你需要傳遞一些數據備份,你可以調用在第二活動setResult()完成前,該數據將在onActivityResult()可爲resultCodeintent參數。

此開發人員培訓文章將有望提供進一步的深入瞭解: http://developer.android.com/training/basics/intents/result.html

+0

謝謝您的建議。我不需要任何結果!我只是想刷新/重新加載Activity1,當我回到這裏,甚至使用物理後退按鈕。我很新,想要非常簡單的代碼來刷新。再次感謝你。 –

+1

然後你不必傳回任何東西,回調仍然會觸發,因爲你使用'startActivityForResult()'來觸發初始動作。您可以忽略結果參數。如果你不想使用這個方法,你也可以使用'onResume()',但是onResume()'會在更多的情況下觸發,而不是從第二個屏幕回來。 – Devunwired

+0

你知道,我是新來的,也是onResume()方法的新手。你能否改變你的上面的代碼到onResume()方法?任何非常新的人都會得到幫助。再次感謝你。 –