Android使用Intent实现页面跳转
程序员文章站
2023-12-17 13:38:34
什么是intent
intent可以理解为信使(意图)
由intent来协助完成android各个组件之间的通讯
intent实现页面之间的跳转
1&...
什么是intent
intent可以理解为信使(意图)
由intent来协助完成android各个组件之间的通讯
intent实现页面之间的跳转
1>startactivity(intent)
2>startactivityforresult(intent,requestcode)
onactivityresult(int requestcode,int resultcode,intent data)
setresult(resultcode,data)
第二种启动方式可以返回结果
代码
firstactivity.java
public class firstactivity extends appcompatactivity { private button bt1; private button bt2; private textview tv; private context context=firstactivity.this; protected void oncreate(@nullable bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.first_layout); bt1 = (button) findviewbyid(r.id.button_first); bt2 = (button) findviewbyid(r.id.button_second); tv = (textview) findviewbyid(r.id.textview); /* * 通过点击bt1实现页面之间的跳转 * 1.startactivity的方式来实现 * */ bt1.setonclicklistener(new view.onclicklistener() { public void onclick(view view) { /* * 第一个参数:上下文对象.this 匿名内部类中不能直接.this * 第二个参数:目标文件(注意是.class) * intent(context packagecontext, class<?> cls) * */ //intent intent = new intent(firstactivity.this,secondactivity.class); intent intent = new intent(context,secondactivity.class); startactivity(intent); } }); /* * 通过startactivityforresult * */ bt2.setonclicklistener(new view.onclicklistener() { public void onclick(view view) { intent intent = new intent(context,secondactivity.class); /* * 第一个参数是intent对象 * 第二个参数是请求的一个标识 * public void startactivityforresult(intent intent, int requestcode) */ startactivityforresult(intent,1); } }); } /* * 通过startactivityforresult方法跳转,接收返回数据的方法 * requestcode:请求的标识 * resultcode:第二个页面返回的标志 * data:第二个页面回传的数据 */ protected void onactivityresult(int requestcode, int resultcode, intent data) { super.onactivityresult(requestcode, resultcode, data); if(requestcode == 1 && resultcode == 3){ string value = data.getstringextra("data"); tv.settext(value); } } }
secondactivity.java
public class secondactivity extends activity { private button bt1; private string value="回传数据"; protected void oncreate(@nullable bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.second_layout); bt1 = (button) findviewbyid(r.id.button); /* * 第二个页面什么时候给第一个页面回传数据 * 回传第一个页面实际上是一个intent对象 * */ bt1.setonclicklistener(new view.onclicklistener() { public void onclick(view view) { intent data = new intent();//使用空参就行,因为我们不跳转 data.putextra("data",value); setresult(3,data); finish();//销毁本页面,也就是返回上一页面 } }); } }
first_layout.xml
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <button android:id="@+id/button_first" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="第一种启动方式" /> <button android:id="@+id/button_second" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="第二种启动方式" /> <textview android:id="@+id/textview" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="把第二个页面回传的数据显示出来" /> </linearlayout>
second_layout.xml
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <button android:id="@+id/button" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="button" /> </linearlayout>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
Android实现单页面浮层可拖动view的一种方法
-
Android使用Intent实现页面跳转
-
Android实现单页面浮层可拖动view的示例代码
-
Android中TextView实现部分文字可点击跳转
-
Android使用CountDownTimer实现倒数定时器效果
-
android使用Ultra-PullToRefresh实现下拉刷新自定义代码
-
Android 中ActionBar+fragment实现页面导航的实例
-
Android使用ListView实现下拉刷新及上拉显示更多的方法
-
Android中使用开源框架eventbus3.0实现fragment之间的通信交互
-
ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解