我有活动A,B和C.活动A和B都在OptionsMenu中有一个选项来调用活动C.但是,如果用户从活动BI调用活动C,则希望他们在活动C时返回活动A.饰面。我可以在从活动B调用活动后使用finish(),但是如果从活动B调用intent,我将如何将值传回活动A?
总结一下,我想:
用户在活动B中 - >呼叫活动C - >用户返回活动A,活动A从活动C接收值。
答案 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);