Android编写点击TextView拨打电话

时间:2022-11-10 12:43:27

在任何一个电商平台都会有点击了手机号码会拨打出一个电话

那么高如何实现这个功能,我们下来分析下原理

当我们点击了一个电话号码后,会弹出一个Dialog显示是否拨打次电话号码,点击确定拨打号码,点击取消关闭拨打电话号码,

我们来看下这个功能的代码是如何实现的

1、通过FindViewById找到TextView控件

2、点击控件弹出Dialog

3、点击确定按钮执行拨打电话,

下面看下代码:

MainActivity代码

package com.sang.carr.call;

import android.app.AlertDialog;
import android.content.DialogInterface;
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.TextView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

private TextView mPhone;
private String mPhoneNumber;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找到TextView控件
mPhone = findViewById(R.id.phone);
//设置TextView内容
mPhone.setText("110");
//获取到TextView的内容
mPhoneNumber = mPhone.getText().toString().trim();
//执行点击事件
mPhone.setOnClickListener(this);

}

@Override
public void onClick(View v) {
//获取点击控件的ID
switch (v.getId()){
//如果ID是R.id.phone,执行showDialog函数
case R.id.phone:
showDialog();
break;
}
}

/**
* 显示Dialog
*/
private void showDialog() {
//创建Dialog
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
//设置Dialong的内容
dialog.setMessage("您确定要拨打:"+mPhoneNumber+"吗?");
//设置确定拨打电话的时间
dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//创建一个意图
Intent intent = new Intent();
//设置动作
intent.setAction("android.intent.action.CALL");
//携带数据,也就是携带电话号码
intent.setData(Uri.parse("tel://"+mPhoneNumber));
//跳转到意图
startActivity(intent);
}
});
//设置取消按钮
dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//关闭Dialog
dialog.dismiss();
}
});
//显示Dialog
dialog.show();
}
}


布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tel:"/>

<TextView
android:id="@+id/phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""/>

</LinearLayout>

</LinearLayout>