Android开发笔记之Intent初级学习教程
本文讲述了android开发笔记之intent初级学习教程。分享给大家供大家参考,具体如下:
项目创建步骤:
new android project->
project name:intent
build target:android 2.2
application name:intentdemo
package name:com.b510.intent.activity
create activity:mainactivity
min sdk version:8
finish
1、拨打电话
按一个按钮,启动打电话程序
2、编辑main.xml
<!-- 打电话按钮 --> <button android:id="@+id/mainbtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/mainbtn" />
3、编辑mainactivity.java文件
/* * 定义一个mainbtn变量 */ private button mainbtn=null; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); //从r.java文件中通过id找到main.xml文件中配置的button mainbtn=(button)findviewbyid(r.id.mainbtn); //设置button的当点击时的监听器 mainbtn.setonclicklistener(listener); } private onclicklistener listener=new onclicklistener() { @override public void onclick(view v) { //申明一个intent intent intent=new intent(); //设置action为打电话 intent.setaction(intent.action_call); //给5554手机打电话,号码前面的"tel:"是必须有的字段 intent.setdata(uri.parse("tel:5554")); //启动activity startactivity(intent); } }; }
4、编辑androidmanifest.xml文件
</application> <!-- 添加允许打电话的功能 的权限--> <uses-permission android:name="android.permission.call_phone"/>
5、发送短信
发送短信和拨打电话类似
5.1、修改mainactivity.java文件
private onclicklistener listener=new onclicklistener() { @override public void onclick(view v) { //申明一个intent intent intent=new intent(); //设置action为打电话 intent.setaction(intent.action_call); //给5554手机打电话,号码前面的"tel:"是必须有的字段 intent.setdata(uri.parse("tel:5554")); //启动activity startactivity(intent); } };
5.2、修改androidmanifest.xml文件
<!-- 添加允许发送短信的功能的权限 --> <uses-permission android:name="android.permission.send_sms"/>
6、启动新的activity
前面说到用intent来拨打电话和发送短信,主要是介绍了intent的一些简单方法,这里intent启动了另一个activity,在之前的内容都是在一个activity中进行操作的。但是在实际应用中,我们会有很多个activity,如何从一个activity跳到其他的activity,这时就需要用到intent了,既然有多个activity,那么我们就要创建另一个activity文件,如:hongtenactivity.java
6.1、编辑hongten.xml文件
<textview android:id="@+id/hongtentext" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <!-- 跳转到另一个mainactivity --> <button android:id="@+id/hongtenbtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hongtenbtn" />
6.2、编辑hongtenactivity.java文件
public class hongtenactivity extends activity { /* * 定义一个hongtenbtn变量 */ private button hongtenbtn = null; /* * 定义一个hongtentext变量 */ private textview hongtentext = null; public final static int result_code = 1; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.hongten); // 首先获得从mainactivity类传递过来的intent intent intent = getintent(); // 在mainactivity那边是setextras(name,key) // 在这里就是getextras()了,他的返回类型是一个bundle类型 bundle bundle = intent.getextras(); string text = bundle.getstring("str"); hongtentext = (textview) findviewbyid(r.id.hongtentext); hongtentext.settext(text + "这是从mainactivity类传递过来的参数"); hongtenbtn = (button) findviewbyid(r.id.hongtenbtn); hongtenbtn.setonclicklistener(backmainactivity); } private onclicklistener backmainactivity = new onclicklistener() { @override public void onclick(view v) { intent intent = new intent(); intent.setclass(hongtenactivity.this, mainactivity.class); intent.putextra("back", "hello mainactivity"); // 启动activity // startactivity(intent); setresult(result_code, intent); // 结束hongtenactivity类,返回到mainactivity类, //并且把名字为"back"参数的字符串传递到mainactivity类中 //同时会调用mainactivity类中的onactivityresult()方法 finish(); } }; }
6.3、修改androidmanifest.xml文件
<activity android:name=".hongtenactivity" android:label="@string/hongtenbtn"> </activity>
6.4、编辑mainactivity.java文件
/* * 定义一个gotoactivitybtn变量 */ private button gotoactivitybtn=null; gotoactivitybtn=(button)findviewbyid(r.id.gotoactivitybtn); gotoactivitybtn.setonclicklistener(gotootheractivity); private onclicklistener gotootheractivity=new onclicklistener() { @override public void onclick(view v) { //申明一个intent intent intent=new intent(); //跳转到命名为hongtenactivity的activity intent.setclass(mainactivity.this, hongtenactivity.class); //把"hello hongtenactivity"字符串以名字为"str"作为参数传递到hongtenactivity类中 intent.putextra("str", "hello hongtenactivity"); //启动activity //startactivity(intent); startactivityforresult(intent, request_code); } }; /** * <li><b>参数:</b></li></br> * <h3>requestcode: 是上面request_code</h3></br> * <h3>resultcode: 是hongtenactivity类中的result_code</h3></br> * <h3>data: 是hongtenactivity类中传递过来的参数</h3> */ @override protected void onactivityresult(int requestcode, int resultcode, intent data) { //这里是和mainactivity中的定义的request_code比较 //如果我们在mainactivity类中有不止一个button时, //都调用了startactivityforresult()方法,那么我们的程序就 //不知道是那个button了,但是有了这样的判断,程序就能清楚的知道是那个button if(requestcode==request_code){ //这是和上面的if()语句有相同的道理,也是确定返回的是那个activity的值 if(resultcode==hongtenactivity.result_code){ //取得hongtenactivity类中传递过来的信息 bundle bundle=data.getextras(); string text=bundle.getstring("back"); //把获得的信息显示出来 toast.maketext(mainactivity.this, text, toast.length_long).show(); } } }
6.5、编辑string.xml文件
<string name="hello">hello world, mainactivity!</string> <string name="app_name">intentdemo</string> <string name="hongtenbtn">去向mainactivity</string> <string name="gotoactivitybtn">去向hongtenactivity</string> <string name="secondbtn">second</string> <string name="mainbtn">call</string>
更多关于android相关内容感兴趣的读者可查看本站专题:《android开发入门与进阶教程》、《android多媒体操作技巧汇总(音频,视频,录音等)》、《android基本组件用法总结》、《android视图view技巧总结》、《android布局layout技巧总结》及《android控件用法总结》
希望本文所述对大家android程序设计有所帮助。
推荐阅读
-
Android开发笔记之Intent初级学习教程
-
Android开发学习笔记之通过API接口将LaTex数学函数表达式转化为图片形式
-
Android开发学习笔记之通过API接口将LaTex数学函数表达式转化为图片形式
-
Android软件开发学习笔记—Intent数据传递
-
Android开发学习笔记——四大组件之ContentProvider
-
学习笔记之——基于ROS的Android开发
-
安卓开发学习笔记(三):Android Stuidio无法引用Intent来创建对象,出现cannot resolve xxx
-
安卓开发学习笔记(四):Android Stuidio无法实现隐式Intent是为什么?
-
Android开发学习笔记——Jetpack之WorkManager
-
php学习笔记之PHP扩展开发教程