1

我想知道,如果我通过intent.putextra 访问变量,那么如果通过示例清除该变量的值会发生变化会发生什么?

4

1 回答 1

1

它非常简单直接。您需要使用startActivityForResultsetResultonActivityResult在活动之间保持值更新。例如:

从您当前的活动中,开始一个新的活动,如下所示:

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);
        }
    }
}
于 2012-08-31T11:43:30.783 回答