概述
0,先确定有几个Activity界面。
1,创建两个活动Activity1和Activity2
每个活动:
a:extends Activity
b:重写onCreate方法(敲上onCreate自动补齐)
c:res/layout中建立layout文件(没有layout文件夹,创建)
d:关联layout布局文件
e:在AndroidManifest.xml注册
f:实例化控件
2,交互
准备工作:给Button设置监听
a:单纯的从主界面Activity1跳转到另一个界面Activity2。Activity2不需要任何修改,因为没有数据传输,也不需要再返回Activity1。
b: 从主界面Activity1跳转到另一个界面Activity2,并从Activity1传递数据到Activity2。
Activity1
Activity2
c:从主界面Activity1跳转到另一个界面Activity2,再从Activity2携带数据跳回Activity1。不携带数据也是这样写,只不过不用接收数据罢了)
需要:startActivityForResult(Intent i, int requestCode)和重写onActivityForResult(int requestCode, int resultCode, Intent i)同时使用。
Activity1: onPause1()->onCreate2()->onStart2()->onResume2()->onStop1(),activity1进入后台
Activity2: onPause2()->onActivityForResult1()->onRestart1()->onStart1()->onResume1()->onStop2()->onDestory2(),activity2被销毁,其对象从内存中删除(finish2())。因为要使得在返回栈中的activity1(栈底)再次获得焦点(栈顶),就必须弹出当前的栈顶元素activity2。
Intent i = new Intent(activity1.this, activity2.class);//可携带数据进行跳转到的一(i)次性时光机。
i.putExtra(“姓名”, “李大嘴”);//把数据塞到一次性时光机里。
startActivity(Intent i);//坐着一次性时光机,从activity1跳转到activity2,此时时光机会磨损。(onPause1()->onCreate2()->onStart2()->onResume2()->onStop1())
Intent i = this.getIntent();//跳转到该activity的一次性时光机,已经用了一次,现在到达acitivty2的一次性时光机不能用了,故先复制出一个完好的一次性时光机,再从里面取出来数据。
String str=i.getStringExtras(“姓名”);//
startAcivityForResult(Intent i, int requestCode);//坐着一次性时光机,从activity1跳转到activity2,并告诉activity2,这个请求是哪个按钮发出的(用requestCode标识,须>=0),还告诉它,自己会等它的返回结果。(此时activity已经调用了onStop()方法。)
setReult(int resultCode, Intent i);//投石机,从当前activity投射到主activity,携带着resultCode(标识哪个activity返回的),requestCode(由哪个按钮开启的请求才跳转到进的当前activity),和Intent(一次性时光机),此时一次性时光机只是被携带着,并没有用,所以
onActivityForResult(int requestCode, int resultCode, Intent i);//该activity等待返回结果,投石机把东西扔过来的时候,会先自动调用该方法,再恢复该activity,故重写(onPause2()->onActivityForResult1()->onRestart()-。onStart()->onResume()->onStop2())。而且,因为一次性时光机没有使用,故可直接从Intent中取得数据。
最后
以上就是威武小刺猬为你收集整理的两个Activity界面之间进行交互的全部内容,希望文章能够帮你解决两个Activity界面之间进行交互所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复