ntent intent = new Intent(A.this,B.class); //注意 startActivityForResult(intent,code); //code为自己定义的对应的值,可以当标识使用,假如有多个按钮要使用这个功能,则判断code即可判断按钮需跳到指定的activity //需要重写OnActivityResult()方法 protected void onActivityResult(int requestCode,int resultCode,Intent data){ //这里判断code if(requestCode==code){ //使用resultCode判断返回的值,可以使用data(返回的值) if(resultCode==B.code) { //执行相应的程序 if(resultCode==B.RESULT_CODE!){ edit.setText(data.getStringExtra(name));} }}}
这是在学习Intent数据传输时一个方法,感觉像Spinner一样,现在就介绍我对以上需求的做法
首先写界面
界面A和界面B,一个是编辑框,一个是数据列表(这里我用的是ListView)
这里需要定义一个常量CODE,可以理解是识别码,判断提交的是哪个按钮还有获取的哪个数据,下面会介绍:
MainActivity中定义REQUEST_CODE,有几个按钮就定义到几,这里我定义REQUEST_CODE1=1;
在button添加监听事件的时候这样写
注意上述代码中是startActivityForResult(intent,RESULT_CODE1);而不是startActivity(intent);这里是区别,注意一下
然后开始写B界面的Activity
这里定义public RESULT_CODE1=1 使用public是为了让A可以调用这个code
//先定义code,方便源activity使用! public static final int code = 1; 在为B里控件添加监听事件的时候这样写intent Intent intent = getIntent(); //放数据 intent.putExtraString(key,value); //注意 setResult(code,intent); //关闭当前activity finish();其他的正常写,在监听事件的时候注意上述代码,setResult(RESULT_CODE1,intent);,还有后面的关闭当前Activity
finish(),没有这句话,则失败
这样就完成了
这次写的不在状态,因为代码不在这台电脑上,都是自己手写的!望见谅
网上有一些介绍serResult()和startActivityForResult()的调用时机,这里不讲这些,这里只是介绍简单的使用,等我什么时候遇到这个问题了,我再自习的为大家讲解!!!