Acitivity之Intent调用方法

用Intent可以实现两个页面(Activity)之间的切换。当然,用Intent还可以实现启动一个Service,和发起一个广播Broadcasts。

①名词解释:
汉语意思是:意图,目的; 意思,含义。即当一个Activity,Service或Broadcasts要表达一种行动的意图时,用Intent做一个他们之间通信的中介。Intent是一种运行时绑定(runtime binding)机制。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来响应。

Intnet在两个Activity之间类似于中介的作用

 

 ②简单实现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

 

 
posted @ 2016-03-28 23:24  XiangDong-OMG  阅读(325)  评论(0编辑  收藏  举报