当调用活动完成时,从Activity返回一个值

时间:2015-03-19 05:19:32

标签: java android

我有活动A,B和C.活动A和B都在OptionsMenu中有一个选项来调用活动C.但是,如果用户从活动BI调用活动C,则希望他们在活动C时返回活动A.饰面。我可以在从活动B调用活动后使用finish(),但是如果从活动B调用intent,我将如何将值传回活动A?

总结一下,我想:

用户在活动B中 - >呼叫活动C - >用户返回活动A,活动A从活动C接收值。

2 个答案:

答案 0 :(得分:1)

从活动C调用活动A并完成活动C.要将数据发送到活动A,请使用intent.putExtra();

Intent i=new Intent(ActivityC.this,ActivityA.class);
i.putExtra("Key","value you want to pass to activity A");
startActivity(i);
finish();

答案 1 :(得分:0)

您可以使用方法startActivityForResult()启动活动C

static private final int GET_TEXT_REQUEST_CODE = 1;
Intent intent = new Intent(this, C.class);
startActivityForResult(intent,GET_TEXT_REQUEST_CODE);

然后覆盖onActivityResult()方法

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    Log.i("B", "Entered onActivityResult()");

    if(resultCode == Activity.RESULT_OK && requestCode == GET_TEXT_REQUEST_CODE){
        myTextView.setText(data.getStringExtra("MY_VALUE"));
    } 
} 

获取数据。 (Docs

在活动C中,您需要设置数据 -

Intent intent  = new Intent();
intent.putExtra("MY_VALUE",input );
setResult(Activity.RESULT_OK, intent);