Intent

    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




    

    
    
    
    
    


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)