Intent

作者: MA木易YA | 来源:发表于2019-06-22 22:39 被阅读0次

        Intent负责对一次操作中的动作,动作涉及的数据和附加数据进行描述,android根据此描述找到响应组件,将intent的数据传递给调用的组件完成调用

    工作过程

    1. 构建Intent
    2. 调用startActivity()
    3. 将构造对象intent传递给startActivity
    4. 在AndroidManifest.xml中找到满足条件的Activity
    5. Activity根据intent中的描述执行相应操作

    属性

    ComponentName(组件名称)

    image.png

    1. Action(动作)

    image.png

    2. Category(类别)

    image.png

    3. Data(数据),Type(MIME类型)

    image.png

        Data一般与Action一同使用,针对不同的Action,Data也有相应的要求,例如:

    image.png

    4. Extras(额外)

    image.png

    5. Flags(标记)

    image.png

    电话、短信实例

    点击按钮设置对应Action并设置相应数据,开启新的Activity

    layout.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
    
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:paddingBottom="@dimen/activity_vertical_margin">
    
        <TextView
            android:id="@+id/text1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="技术支持:吉林省明日科技有限公司"
            android:layout_marginTop="20dp"/>
    
        <TextView
            android:id="@+id/text2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="网址:http://www.mingrisoft.com"
            android:layout_marginTop="10dp"
            android:layout_below="@+id/text1"/>
        <TextView
            android:id="@+id/text3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="企业邮箱:mingrisoft@mingrisoft.com"
            android:layout_marginTop="10dp"
            android:layout_below="@+id/text2"/>
        <TextView
            android:id="@+id/text4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="技术服务热线:0431-84978981"
            android:layout_marginTop="10dp"
            android:layout_below="@+id/text3"/>
        <ImageButton
            android:id="@+id/imageButton_phone"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/phone"
            android:layout_below="@+id/text4"
            android:layout_marginTop="30dp"
            android:background="#0000"
            android:scaleType="fitXY"
            />
        <ImageButton
            android:id="@+id/imageButton_sms"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/imageButton_phone"
            android:layout_below="@+id/text4"
            android:layout_marginTop="30dp"
            android:layout_marginLeft="30dp"
            android:background="#0000"
            android:scaleType="fitXY"
            android:src="@drawable/sms"/>
    </RelativeLayout>
    
    
    image.png

    MainActivity

    package com.example.asus.layout;
    
    import android.app.FragmentTransaction;
    import android.content.Intent;
    import android.net.Uri;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ImageButton;
    
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.layout);
            ImageButton imageButton = (ImageButton) findViewById(R.id.imageButton_phone); //获取电话图片按钮
            ImageButton imageButton1 = (ImageButton) findViewById(R.id.imageButton_sms); //获取短信图片按钮
            imageButton.setOnClickListener(l); //为电话图片按钮设置单击事件
            imageButton1.setOnClickListener(l);//为短信图片按钮设置单击事件
        }
    
        //创建监听事件对象
        View.OnClickListener l = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(); //创建Intent对象
                switch (v.getId()) {       //根据ImageButton组件的id进行判断
                    case R.id.imageButton_phone:              //如果是电话图片按钮
                        intent.setAction(intent.ACTION_DIAL); //调用拨号面板
                        intent.setData(Uri.parse("tel:13800138000")); //设置要拨打的号码
                        startActivity(intent); //启动Activity
                        break;
                    case R.id.imageButton_sms:             //如果是短信图片按钮
                        intent.setAction(intent.ACTION_SENDTO); //调用发送短信息
                        intent.setData(Uri.parse("smsto:5554")); //设置要发送的号码
                        intent.putExtra("sms_body", "Welcome to Android!"); //设置要发送的信息内容
                        startActivity(intent); //启动Activity
                }
            }
    
        };
    }
    
    
    image.png image.png

    相关文章

      网友评论

          本文标题:Intent

          本文链接:https://www.haomeiwen.com/subject/rbfctctx.html