2012-11-25 80 views
0
Intent i = new Intent(getApplicationContext(), NewActivity.class); 
i.putExtra("new_variable_name","value"); 
startActivity(i); 

Bundle extras = getIntent().getExtras(); 
if (extras != null) { 
String value = extras.getString("new_variable_name"); 
} 

我的情況有點不同:我調用另外一個(索引活動)的主要活動:共享數據從/到活動

Intent index = new Intent(this, Index.class); 
startActivity(index); 

從索引活動,用戶可以從列表中選擇。

所以,我需要將索引的類變量傳遞給主要活動。怎麼樣?

謝謝!

+0

http://developer.android.com/reference/android/app/Activity.html#startActivityForResult – Simon

回答

0

您需要使用Activity的方法startActivityforResult

查看應該如何使用here的示例。

基本上這個想法是使用Bundles在活動之間傳遞數據。這樣,即使系統由於缺乏資源而被銷燬,系統也可以恢復活動。

0
Intent intent= new Intent(this, Index.class); 
i.putExtra("data", "data"); 
startActivity(intent); 

而且在指數類使用此:

Bundle extras = getIntent().getExtras(); 
String data = extras.getString("data"); 
+0

至少我以另一種方式理解OP的問題:被調用的活動需要返回結果。 –

0

好吧,我做:

主要活動:

Intent i = new Intent(this, Index.class); 
    startActivityForResult(i, 1); 

指數:活動:

button1.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      String result = "1"; 
      Intent returnIntent = new Intent(); 
      returnIntent.putExtra("result",result); 
      setResult(RESULT_OK,returnIntent);  
      finish(); 

主要活動:

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

    if (requestCode == 1) { 

     if(resultCode == RESULT_OK){ 

      String result=data.getStringExtra("result"); 
      value=result; 
    } 

    if (resultCode == RESULT_CANCELED) { 
     //Write your code on no result return 

    }} 
    } 

「結果」是從索引活動正確的變量,但我需要使用該變量主類,而不是僅在該法。

所以我希望分享「結果」變量給整個班級。

這是怎麼回事?

謝謝!