Android Intent意图的常用使用方法

一个intent就是对将要执行的操作的抽象描述,程序跳转和参数的传递都需要intent

android的核心应用和灵魂

Intent可以给按钮添加联系其他应用的内容比如,单击按钮直接拨打电话,单击按钮发送短息等等,但是这些功能需在manifest里边注册需求。

拨打电话

intent.setAction(Intent.ACTION_CALL);

intent.setData(Uri.parse("tel:18292651821"));

发送短息:

intent.setAction(Intent.ACTION_SENDTO);

intent.setData(Uri.parse("smsto:5554"));

intent.putExtra("sms_body", "I'm HuBaoquan1");

 

 

启动另一个activity

注意一个布局文件都有一个对应的activity类管理,所以创建第二个界面时要同时创建布局文件xml和管理布局文件的类java,并且新的activity类要在manifest中申明activity

<activity

android:name="com.hbq.intentdemo.SecondActivity"

android:label="second" >

>

//主(mainactivity)界面下启动secondactivity

intent.setClass(MainActivity.this, SecondActivity.class); 

startActivity(intent);//启动activity意图

给被启动的activity传递参数

//向将要启动的界面传递参数,key值为str,数据为"To SecondActivity data!"

intent.putExtra("str", "To SecondActivity data!"); 

被启动的activity接收数据:

//接收数据时需新建intent对象,获得intent

Intent intent = getIntent();

//通过intent.getExtras()返回bundle对象

Bundle bundle = intent.getExtras();

//通过bundle对象和key值获得传递进来的数据 

String string = bundle.getString("str"); 

 

返回数据给启动它的activity:

//同样要通过intent对象

Intent intent = new Intent();

//设置要返回的key值和数据

intent.putExtra("back", "back data");

//启用返回的intent

setResult(RESULT_CODE, intent);

//销毁当前activity

finish();

在主activity中还要重写onActivityResultint requestCode, int resultCode, Intent data)方法接收返回的数据,还要比较返回码和请求码:

if (requestCode == REQUEST_CODE  )
{
if( resultCode == SecondActivity.RESULT_CODE)
{
Bundle bundle = data.getExtras();
String string = bundle.getString("back");
Toast.makeText(MainActivity.this, string, Toast.LENGTH_LONG).show();
}
}  


注意在数据传递的过程中需要设定请求码,和返回码

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章