Android开发系列(一):电话拨号器的实现

来源:互联网 发布:深圳查知科技有限公司 编辑:程序博客网 时间:2024/06/01 19:52

目标,实现简单的电话拨号功能。


首先,可以看到上边有几个控件,上边有几个文字。

在我们建立好了工程之后,我们首先可以在res目录下的values目录的strings.xml中把这几个文字添加进去,为了更好地实现国际化。

<?xml version="1.0" encoding="utf-8"?><resources>    <string name="hello">Hello World, MainActivity!</string>    <string name="app_name">电话拔号器</string>    <string name="mobile">请输入手机号</string>    <string name="button">拔号</string></resources>
接下来,我们需要实现这个Activity窗口。可以看出,这个界面中有三个组件:第一行的”请输入手机号“,第二行的手机号文本框,第三行的“拨号”按钮。

所以,我们在res目录下的layout目录的main.xml配置文件中添加这几个组件:

       <TextView      android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="@string/mobile"    /><EditTextandroid:layout_width="fill_parent"     android:layout_height="wrap_content"    android:id="@+id/mobile"    /><Buttonandroid:layout_width="wrap_content"     android:layout_height="wrap_content"    android:text="@string/button"    android:id="@+id/button"    />
做到这里的时候,界面就是已经做好了。


这个时候,我们需要通过java来实现这个拨号器的拨号功能了:

我们需要编写MainActivity.java:

package cn.itcast.phone;import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;public class MainActivity extends Activity {    private EditText mobileText;        @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        mobileText = (EditText) findViewById(R.id.mobile);//获得文本输入框:通过main中的id为mobile的属性        Button button = (Button) this.findViewById(R.id.button); //获得Button        button.setOnClickListener(new ButtonClickListener());//设置点击事件的监听器    }     private final class ButtonClickListener implements View.OnClickListener{public void onClick(View v) { //默认实现方法,当按钮被点击就会被调用String number = mobileText.getText().toString(); //通过文本输入框,获得文本输入框的值Intent intent = new Intent(); //得到一个意图对象intent.setAction("android.intent.action.CALL"); //传递动作名称intent.setData(Uri.parse("tel:"+ number)); //传递数据startActivity(intent);//方法内部会自动为Intent添加类别:android.intent.category.DEFAULT}    }}

我们来分析下程序的过程:

首先,调用setContentView(R.layout.main);来获得main窗口,然后通过findViewById(R.id.mobile)获得在main.xml中id为mobile的文本输入框。

接下来,通过findViewById(R.id.button);获得在main.xml中id为button的按钮。

继续,用setOnclickListener(new ButtonClickListener());来设置点击事件的监听器。


再下边,我们需要编写一个ButtonClickListener()类,用final来标记不能够被继承。

在这个类中添加未被实现的方法,当点击的时候会被调用:Onckick(View v)。

在方法中,调用mobileText.getText().toString()来获得文本框输入的手机号码。

然后,通过intent传递拨打电话的动作名称:“android.intent.action.CALL"

通过intent传递数据:intent.setDate(Uri.parse("tel:"+number));

接下来开启intent意图。


因为拨打电话涉及到数据的隐私,所以我们需要在AndroidMainfest.xml中添加一个安全控制:

<uses-permission android:name="android.permission.CALL_PHONE"/>

到了这个时候,一个电话拨号器基本就完成了。




1 1
原创粉丝点击