欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android使用Intent的Action和Data属性实现点击按钮跳转到拨打电话和发送短信界面

程序员文章站 2022-06-24 16:22:17
场景 点击拨打电话按钮,跳转到拨打电话页面 点击发送短信按钮,跳转到发送短信页面 注: 实现 将布局改为linearlayout,并通过android:orienta...

场景

点击拨打电话按钮,跳转到拨打电话页面

Android使用Intent的Action和Data属性实现点击按钮跳转到拨打电话和发送短信界面

点击发送短信按钮,跳转到发送短信页面

Android使用Intent的Action和Data属性实现点击按钮跳转到拨打电话和发送短信界面

注:

实现

将布局改为linearlayout,并通过android:orientation="vertical">设置为垂直布局,然后添加id属性。

然后添加两个按钮,并设置id属性与显示文本。

<?xml version="1.0" encoding="utf-8"?>
<linearlayout 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"
  android:orientation="vertical"
  tools:context=".intentactivity">
  <button
    android:id="@+id/call"
    android:text="拨打电话"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
  <button
    android:id="@+id/send"
    android:text="发送短信"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
</linearlayout>

然后来到activity,首先通过id获取者两个button

 button buttoncall = (button) findviewbyid(r.id.call);
    button buttonsend = (button) findviewbyid(r.id.send);

又因为这两个button的点击事件监听器差不多,所有抽离出一个公共的点击事件监听器对象。

view.onclicklistener listener = new view.onclicklistener() {
    @override
    public void onclick(view v) {
      intent intent = new intent();
      //将view强转为button
      button button = (button) v;
      //根据button的id
      switch(button.getid()){
        //如果是拨打电话按钮
        case r.id.call:
          //设置action行为属性
          intent.setaction(intent.action_dial);
          //设置数据 后面123456789是默认要拨打的电话
          intent.setdata(uri.parse("tel:123456789"));
          startactivity(intent);
          break;
        case r.id.send:
          //设置行为为 发送短信
          intent.setaction(intent.action_sendto);
          //设置发送至 10086
          intent.setdata(uri.parse("smsto:10086"));
          //设置短信的默认发送内容
          intent.putextra("sms_body","公众号:霸道的程序猿");
          startactivity(intent);
          break;
      }
    }
  };

然后在oncreate中对按钮设置点击事件监听器。

完整示例代码

package com.badao.relativelayouttest;
import androidx.appcompat.app.appcompatactivity;
import android.content.intent;
import android.net.uri;
import android.os.bundle;
import android.view.view;
import android.widget.button;
public class intentactivity extends appcompatactivity {
  @override
  protected void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.activity_intent);
    button buttoncall = (button) findviewbyid(r.id.call);
    button buttonsend = (button) findviewbyid(r.id.send);
    buttoncall.setonclicklistener(listener);
    buttonsend.setonclicklistener(listener);
  }
  view.onclicklistener listener = new view.onclicklistener() {
    @override
    public void onclick(view v) {
      intent intent = new intent();
      //将view强转为button
      button button = (button) v;
      //根据button的id
      switch(button.getid()){
        //如果是拨打电话按钮
        case r.id.call:
          //设置action行为属性
          intent.setaction(intent.action_dial);
          //设置数据 后面123456789是默认要拨打的电话
          intent.setdata(uri.parse("tel:123456789"));
          startactivity(intent);
          break;
        case r.id.send:
          //设置行为为 发送短信
          intent.setaction(intent.action_sendto);
          //设置发送至 10086
          intent.setdata(uri.parse("smsto:10086"));
          //设置短信的默认发送内容
          intent.putextra("sms_body","公众号:霸道的程序猿");
          startactivity(intent);
          break;
      }
    }
  };
}

因为用到了打电话和发动短信,所以需要声明这两个权限,打开androidmainfest.xml

 <!--添加打电话权限-->
  <uses-permission android:name="android.permission.call_phone"/>
  <!--添加发送短信权限-->
  <uses-permission android:name="android.permission.send_sms"/>

Android使用Intent的Action和Data属性实现点击按钮跳转到拨打电话和发送短信界面

总结

以上所述是小编给大家介绍的android使用intent的action和data属性实现点击按钮跳转到拨打电话和发送短信界面,希望对大家有所帮助