赞
踩
一个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中还要重写onActivityResult(int 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();
- }
- }
注意在数据传递的过程中需要设定请求码,和返回码
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。