Android_Activity_跳转Activity至其他,再返回接受其activity返回的值。

来源:互联网 发布:知而行 编辑:程序博客网 时间:2024/06/07 02:16

主要的三个方法:

1. //启动带返回结果的Activity:

startActivityForResult(intent,o);

2.//处理返回结果的方法

public void onActivityResult(int requestCode,int resultCode,intent data)

3.//设置结果,结束Activity

MyActivity.this.setResult(o,intent);

MyActivity.this.finish();


举例:创建一个ActivityA 跳转到一个ListView的ActivityB界面,并将在ActivityB的list中选择的的一个选项值返回给到ActivityA的EditText上。

1:创建一个listView 并填充内容的Activity,定义其ListView的监控事件:

listView.setOnItemClickListener(new AdatepterView.onItemClickListener(){

@override

public void onItemClick(AdapterView<?> parent,View view,int postition,long id){

//获得当前选中的号码

String number = number[position];

//获得号码后,我们需要把获得的值放到要返回的结果里头去。

Intent intent = new Intent();

intent.putExtra("number",number);

//我们还需要调用这个方法,设置一个返回结果:

setResult(RESULT_OK,intent);

//最后结束这个ActivityB

finish();

}

})


2:.ActivityA中创建一个Button,同时定义该Button的Onclick监听事件,实现带返回值的界面跳转过程:监听事件为: 

public void selectClick(View v){

Intent  intent = new Intent(this,ActivityB.class);

//REQUESTCODE_1 请求编码  是一个常量,该参数的最主要的意义就是:当Intent有可能跳转的不只存在一个Activity时,

//用来判断最终返回的结果,能准确的获得对应的返回的值,也就是一个标志位。

stratActivityForResult(intent,REQUESTCODE_1);

}


3.当ActivityA跳转至ActivityB,ActivityB选中号码后,将号码存入到返回结果中后,ActivityA中就应该处理返回的结果,我们需要重写一个方法:

protected void onActivityResult(int requestCode,int resultCode,Intent data){

super.onActivityResult(requestCode,resultCode,date);

if(requestCode == REQUESTCODE_1 && resultCode== RESULT_OK){

String number = data.getStringExtra("number");

editText.setText(number);

}

}


这样就实现了一个界面跳转到另一个界面,同时返回时带回返回值。

  









阅读全文
0 0
原创粉丝点击