• Intent的属性及Intent-filter配置——实例Action、Data属性启动系统Activity


         一旦为Intent同时指定了Action、Data属性,那么Android将可根据指定的数据类型来启动特定的应用程序,并对指定数据类型执行相应的操作。

         下面是几个Action属性、Data属性的组合。

    • ACTION_VIEW  content://com.android.contacts/contacts/1:显示标识为1的联系人的信息。
    • ACTION_EDIT   content://com.android.contacts/contacts/1:编辑标识为1的联系人的信息。
    • ACTION_DIAL   content://com.android.contacts/contacts/1:显示向标识为1的联系人拨号的界面。
    • ACTION_VIEW  tel:123:显示向指定号码123拨号的界面。
    • ACTION_DAL    tel:123:显示向指定号码123拨号的界面。
    • ACTION_VIEW  content://contacts/people/:显示所有联系人列表的信息,通过这种组合可以非常方便地查看系统联系人。

         下面的程序示范通过同时为Intent指定Action、Data属性来启动特定程序并操作相应的数据。下面的程序的界面很简单,它只包含两个按钮,其中一个按钮用于浏览指定网页,一个按钮用于编辑指定联系人信息。

          

    package com.example.studyintent;
    
    import android.net.Uri;
    import android.os.Bundle;
    import android.app.Activity;
    import android.content.Intent;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    
    public class ActionData extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_action_data);
            Button bn=(Button)findViewById(R.id.bn);
            //为bn按钮添加一个监听器
            bn.setOnClickListener(new OnClickListener(){
    
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    //创建Intent 
                    Intent intent=new Intent();
                    String data="http://www.crazyit.org";
                    //根据指定字符串解析出Uri对象
                    Uri uri=Uri.parse(data);
                    //为Intent设置Action属性
                    intent.setAction(Intent.ACTION_VIEW);
                    //设置Data属性
                    intent.setData(uri);
                    startActivity(intent);
                }
                
            });
            
            Button edit=(Button)findViewById(R.id.edit);
            //为edit按钮添加一个监听器
            edit.setOnClickListener(new OnClickListener(){
    
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    //创建Intent
                    Intent intent=new Intent();
                    //为Intent设置Action属性(动作为:编辑)
                    intent.setAction(Intent.ACTION_EDIT);
                    String data="content://com.android.contacts/contacts/1";
                    //根据指定字符串解析出Uri对象
                    Uri uri=Uri.parse(data);
                    //设置Data属性
                    intent.setData(uri);
                    startActivity(intent);
                }
            });
        
            Button call=(Button)findViewById(R.id.call);
            //为edit按钮添加一个监听器
            call.setOnClickListener(new OnClickListener(){
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    //创建Intent
                    Intent intent=new Intent();
                    //为Intent设置Action属性(动作为:拨号)
                    intent.setAction(Intent.ACTION_DIAL);
                    String data="tel:13800138000";
                    //根据指定字符串解析出Uri对象
                    Uri uri=Uri.parse(data);
                    //设置Data属性
                    intent.setData(uri);
                    startActivity(intent);
                }
            });
            
            
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.action_data, menu);
            return true;
        }
    
    }

    运行上面的程序,单击第一个按钮,该按钮单击时启动Intent(Action=Intent.ACTION_VIEW,Data=http://www.crazyit.org)对应的Activity,将看到打开www.crazyit.org的界面,如图5.13所示。

       

    单击第二个按钮,该按钮单击时启动Intent(Action=Intent.ACTION_EDIT,Data=content://com.android.contacts/contacts/1)对应的Activity,将看到编辑标识为1的联系人的界面。

    单击第三个按钮,该按钮单击时启动Intent(Action=Intent.ACTION_DIAL,Data=tel:13800138000)对应的Activity,将看到程序向13800138000拨号的界面,如图5.15所示。

  • 相关阅读:
    单源最短路——SPFA算法(Bellman-Ford算法队列优化)
    A Compatible Pair
    欧拉函数知识点总结及欧拉函数打表代码(数论)
    Fafa and the Gates(模拟)
    C语言--链表基础模板
    路由器如何设置上网(TP-LINK)
    学员成绩管理系统
    Bad Cowtractors(最大生成树)
    Agri-Net(最小生成树)
    Median Weight Bead(最短路—floyed传递闭包)
  • 原文地址:https://www.cnblogs.com/wolipengbo/p/3427957.html
Copyright © 2020-2023  润新知