Android打电话程序(根据添加按钮监听的3种不同方式分别实现)

来源:互联网 发布:gabrielle名字 知乎 编辑:程序博客网 时间:2024/05/18 09:50

方式一:(较麻烦不推荐)

import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;/** * 方式一:定义一个内部类,实现OnClickListener接口 * 在主函数中给按钮添加监听器setOnClickListener(new MyOnclickListener()) * 参数是内部类的实例对象 */public class MainActivity1 extends Activity {private EditText numET;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);numET = (EditText) findViewById(R.id.numET);Button callBT = (Button) findViewById(R.id.callBT);//获取按钮对象callBT.setOnClickListener(new MyOnclickListener());//添加监听器}//由于MyOnclickListener类定义在外边不能使用findViewById方法,因为此方法是在View里的,所以将此类定义成内部类private class MyOnclickListener implements OnClickListener {private EditText numET;public void onClick(View v) {String num = numET.getText().toString();//获取文本框内容(号码)//Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+num));//创建意图对象Intent intent = new Intent();//创建意图对象intent.setAction(Intent.ACTION_CALL);//设置意图的动作为拨打电话intent.setData(Uri.parse("tel:"+num));//设置意图的数据(电话号码)startActivity(intent);//执行意图}}}


方式二:(常用)

import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;/** * 方式二:当前类实现OnClickListener方法 * 在主函数中给按钮添加监听器setOnClickListener(this) * 参数是当前类 */public class MainActivity2 extends Activity implements OnClickListener {//当前类既是一个Activity,也是一个OnClickListener实现类private EditText numET;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);numET = (EditText) findViewById(R.id.numET);Button callBT = (Button) findViewById(R.id.callBT);//获取按钮对象callBT.setOnClickListener(this);//把当前对象作为监听器,添加到button上}public void onClick(View v) {String num = numET.getText().toString();//获取文本框内容(号码)//Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+num));//创建意图对象Intent intent = new Intent();//创建意图对象intent.setAction(Intent.ACTION_CALL);//设置意图的动作为拨打电话intent.setData(Uri.parse("tel:"+num));//设置意图的数据(电话号码)startActivity(intent);//执行意图}}



方式三:(常用)

import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.widget.EditText;/** * 方式三:在layout文件夹下的main.xml中的Button组件中添加一个 * android:onClick="myOnClick"属性 * 然后在此类中添加一个myOnClick方法即可 * 这样就不需要手动写代码往Button上添加监听器了 */public class MainActivity3 extends Activity {private EditText numET;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);numET = (EditText) findViewById(R.id.numET);}public void myOnClick(View v) {String num = numET.getText().toString();//获取文本框内容(号码)//Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+num));//创建意图对象Intent intent = new Intent();//创建意图对象intent.setAction(Intent.ACTION_CALL);//设置意图的动作为拨打电话intent.setData(Uri.parse("tel:"+num));//设置意图的数据(电话号码)startActivity(intent);//执行意图}}

main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="@string/insert_num" />    <EditText         android:id="@+id/numET"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        /><Button     android:id="@+id/callBT"    android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/call"        android:onClick="myOnClick"    /></LinearLayout>



0 0