Intent负责对一次操作中的动作,动作涉及的数据和附加数据进行描述,android根据此描述找到响应组件,将intent的数据传递给调用的组件完成调用
工作过程
1. 构建Intent
2. 调用startActivity()
3. 将构造对象intent传递给startActivity
4. 在AndroidManifest.xml中找到满足条件的Activity
5. Activity根据intent中的描述执行相应操作
属性
ComponentName(组件名称)
1. Action(动作)
2. Category(类别)
3. Data(数据),Type(MIME类型)
image.pngData一般与Action一同使用,针对不同的Action,Data也有相应的要求,例如:
4. Extras(额外)
5. Flags(标记)
电话、短信实例
点击按钮设置对应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
网友评论