2012-08-31 71 views

回答

1

它非常簡單直接。您需要利用startActivityForResult,setResultonActivityResult來保持活動之間的值更新。例如:

從當前的活動,開始爲下面的一個新問題:

Intent i = new Intent(this, SomeClass.class); 
i.putExtra("value", 1001); 
startActivityForResult(i, 1); 

在你SomeClass活動,獲得的價值,改變它,然後返回如下:

int value = getIntent().getIntExtra("value", 0); 
value += 100; //changing the value for demo purposes 
Intent j = new Intent(); 
j.putExtra("modified_value", value); 
setResult(Activity.RESULT_OK, j); 
finish(); 

現在回到您的父母活動,請執行以下操作以接收修改後的值:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if(requestCode == 1){ 
     if(resultCode == Activity.RESULT_OK){ 
      int modified_value = data.getIntExtra("modified_value", 0); 
     } 
    } 
} 
+0

如果我的變量值發生了變化,那麼我必須每次都傳遞新的意圖? –

+0

當然,否則你的父母活動無法知道這些變化。 *文字*類型值不通過引用傳遞。所以這是唯一可以幫助你跟蹤價值的複雜方式。 – waqaslam

+0

Thanx男人,我得到了 –