IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android:Action 与 Data 属性 -> 正文阅读

[移动开发]Android:Action 与 Data 属性

前言

Intent 的中文翻译就是“意图”的意思,它是 Android 程序中传输数据的核心对象。在 Android 官方文档中,对 Intent 的定义是执行某操作的一个抽象描述。
一个 Intent 对象实质上是一组被捆绑的信息,它可以是对 Intent 有兴趣的组件信息(如要执行的动作和要作用的数据),也可以是 Android 系统感兴趣的信息(如处理 Intent 组件的分类信息和如何启动目标活动的指令等)。Intent 对象主要包含 Component name、Action、Category、Data、Extras、Flags 6种属性。

属性作用
Component name指定为处理 Intent 对象的组件名称
ActionIntent 要完成的一个动作
Category用来对执行动作的类别进行描述
Data向 Action 提供要操作的数据
Extras向 Intent 组件添加附加信息
Flags指示 Android 程序如何去启动一个 Activity

Component name

Component name 属性用来设置 Intent 对象的组件名称,它的属性值是一个 ComponentName 对象,要创建一个 ComponentName 需要指定包名和类名——这就可以唯一的确定一个组件类,这样应用程序就可以根据给定的组件类去启动特定的组件。

Action(动作)

Action 属性用来指定将要执行的动作。它很大程度上决定了 Intent 如何构建.
Action 与 Data、Extras 属性。它们的关系就像一个方法名决定了参数和返回值一样,正是由于这个原因,所以应该尽可能明确指明动作,并紧紧关联到其他 Intent 字段。

Data(数据)

Data 属性通常用于向 Action 提供要操作的数据。它可以是一个 URI 对象,通常情况下包含数据的 URI 和 MIME 类型,不同的 Action 有不同的数据规格,其采用 “数据类型:数据” 的格式。

Action 与 Data 的数据关联

操作类型Data 格式
浏览网页http://网页地址
拨打电话tel:电话号码
发送短信smsto:短信接收号码
查找 SD 卡文件file:///sdcard/目录或文件
显示地图geo:坐标,坐标
联系人信息content://联系人信息

举例说明:Intent实现拨打电话、发送短信

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
        ImageButton imageButton1 = (ImageButton) findViewById(R.id.phone);
        ImageButton imageButton2 = (ImageButton) findViewById(R.id.yx);

        //设置监听器对象
        imageButton1.setOnClickListener(listener);
        imageButton2.setOnClickListener(listener);
    }

    View.OnClickListener listener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent();
            ImageButton imageButton = (ImageButton) v;
            switch (imageButton.getId()) {
                case R.id.phone:
                    intent.setAction(intent.ACTION_DIAL);           //打开拨号面板
                    intent.setData(Uri.parse("tel:12345678"));   //拨打电话号码
                    startActivity(intent);  //启动Activity
                    break;
                case R.id.yx:
                    intent.setAction(intent.ACTION_SENDTO);         //打开发送短信界面
                    intent.setData(Uri.parse("smsto:123123123"));   //发送短信号码
                    intent.putExtra("sms_body", "hello!");   //设置信息内容
                    startActivity(intent);  //启动 Activity
            }
        }
    };
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.example71">
    <uses-permission android:name="android.permission.CALL_PHONE"/>
    <uses-permission android:name="android.permission.SEND_SMS"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.Example">
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:background="#999999"
    >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="网址:http://www.~.com\n企业邮箱:123123123@qq.com\n服务电话:123123123"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginTop="100dp"
        android:layout_marginLeft="10dp"
        android:textSize="25dp"
        android:textColor="#FFFFFF"
        android:id="@+id/text"/>

    <ImageButton
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_marginTop="20dp"
        android:id="@+id/phone"
        android:layout_below="@+id/text"
        android:layout_marginLeft="20dp"
        android:background="@drawable/phone"
        />
    <ImageButton
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_marginTop="20dp"
        android:id="@+id/yx"
        android:layout_below="@+id/text"
        android:layout_toRightOf="@+id/phone"
        android:layout_marginLeft="20dp"
        android:background="@drawable/yx"
        />

</RelativeLayout>
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-01-17 11:36:04  更:2022-01-17 11:37:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:42:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码