Acitivity之Intent调用方法
用Intent可以实现两个页面(Activity)之间的切换。当然,用Intent还可以实现启动一个Service,和发起一个广播Broadcasts。
①名词解释:
汉语意思是:意图,目的; 意思,含义。即当一个Activity,Service或Broadcasts要表达一种行动的意图时,用Intent做一个他们之间通信的中介。Intent是一种运行时绑定(runtime binding)机制。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来响应。
②简单实现Activity之间的切换。
/*MainActivity.java*/
button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //创建一个Intent对象 Intent intent = new Intent(); intent.setClass(MainActivity.this,OtherActivity.class); //单机按钮,从当前所在的MainActivity跳转到OtherActivity startActivity(intent); //启动不带传值的Intent对象
这样跳转存在的问题:得益于Intent是运行时绑定(runtime binding)机制,两个Acitivity之间的跳转是不“绑定”的。这样存在一定的好处,但是在进入另一个页面(Activity)之后,需要按后退键返回上一个页面。这就是说:如果整个应用使用了很多Intent这样的跳转机制,要返回首页是很麻烦的。
③”Intent“比你想象的更强大
Intent有以下几个属性:
动作(Action),数据(Data),分类(Category),类型(Type),组件(Compent)以及扩展信(Extra)。其中最常用的是Action属性和Data属性。
举个栗子
btn01.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setAction(Intent.ACTION_GET_CONTENT);// 设置Intent Action属性 intent.setType("vnd.android.cursor.item/phone");// 设置Intent Type 属性 //主要是获取通讯录的内容 startActivity(intent); // 启动Activity } });
以上方法实现了:点击按钮btn01后打开手机自带通讯录,选择联系人的界面。
关于Intent用法的其他详细解释参看博文:http://liangruijun.blog.51cto.com/3061169/634411
对Android中vnd.android.cursor.item/的解释参看:http://blog.sina.com.cn/s/blog_746189210102vzvr.html