【Android】中带回传值的Activity启动方法

如果想从将要启动的Activity中获得一个结果,就要使用startActivityForResult()代替tartActivity。为了获取这个Result,需要重写onActivityResult()这个回调方法。

重述该问题如下:

A开启子窗口B,A传递部分值给B,同时B也有值要回传给A:

解决如下:

1>

先在A的button.setOnClickListener()中的onClick事件中这样写跳转代码:

Intent intent = new  Intent(MainActivity.this,NextActivity.class);

(这里是A中用intent传值的代码)

startActivityForResult(intent,1000);//这里的1000是requestCode和onActivityResult里的requestCode对应就行。

 

2>

在B的提交按钮中这样写监听函数:

String value = editText.getText().toString().trim();

Intent intent = new Intent();

intent.putExtra(“result”,value);

setResult(1001,intent);//1001是resultCode

finish();//按回退键也有此效果

 

3>

在A中重写onActivityResult(int requestCode,int resultCode,Intent data):

if(requestCode == 1000&&resultCode = 1001){

String result_value = data.getStringExtra(“result”);

editText3.setText(result_value);

}

A中设置requestCode,子窗口B设置resultCode。

 

总结:也就是说呢,如果A要从B获取某值,A启动的时候就要指定RequestCode,B返回的时候呢,要再指定一个ResultCode,返回A之后,需要对由这两个code所确定的行为进行相应处理。

此条目发表在Android技术分类目录,贴了, , 标签。将固定链接加入收藏夹。

发表评论

邮箱地址不会被公开。 必填项已用*标注