首先,先要做拨号器的布局。
1.新建一个项目,先修改layout文件下的activity_main.xml文件
2.代码如下:
<TextView
android:id="@+id/title"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:text="请输入你要拨打的号码"
/>
<EditText
android:id="@+id/number"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_below="@id/title"
/>
<Button
android:id="@+id/call"
android:layout_below="@id/number"
android:text="拨打此号码"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:onClick="call"
/>
Button按钮有一个android:onClick=”call”,onClick方法可以查看API文档
android:onClick
Since: API Level Name of the method in this View’s context to invoke when the view is clicked. This name must correspond to a public method that takes exactly one parameter of type View. For instance, if you specify android:onClick=”sayHello”, you must declare a public void sayHello(View v) method of your context (typically, your Activity).
android:onClick=”call”,我们这里给它一个“call”名。,就要回到MainActivity写一个call方法
//当拨打此号码的按钮被点击时触发该方法
public void call(View v){
System.out.println("拨打电话");
}
3.先运行一下,看看各方面有没有什么出错,点击【拨打此号码】按钮,看到Logcat打印的内容为“拨打电话”,则证明我们捕获了这个事件。
07-11 13:03:39.667: I/System.out(726): 拨打电话
4.接下来是拿出输入框里面的内容,给它添加一个拨打电话的权限,MainActivity.java编写如下代码
//当拨打此号码的按钮被点击时触发该方法
public void call(View v){
System.out.println("拨打电话");
//1.取出输入框中的号码(就得先获得对象)
EditText etNumber = (EditText) findViewById(R.id.number);//输入框对象
String number = etNumber.getText().toString(); //将要拨打的号码
//2.根据号码拨打电话
Intent intent = new Intent(); //创建一个意图
/*URI:资源标志符(Uniform Resource Identifier, 简称"URI")。 用来标识你的文件、数据库、数据信息等的位置。*/
intent.setData(Uri.parse("tel:"+number)); //指定将要拨出的号码
startActivity(intent); //执行这个动作
}
}
接下来到AndroidManifest.xml申请拨打电话权限:
<uses-permission android:name="android.permission.CALL_PHONE"/>
5.到现在就可以实现基本功能了,来个拨打10086
这个时候我们还要考虑一个问题,我们如果输入一些字母呢(经测试会被转换为数字),所以为了模拟真实手机软件,我们就必须给它限制只能输入数字,只要增加一个EditText的属性inputType就行了
<EditText
android:id="@+id/number"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:inputType="number"
android:layout_below="@id/title"
/>
这样就完成了一个最基本功能的拨号器了,接下来测试一下,没有真机可以开启两个模拟器测试,模拟器上的5554,5556就是它的号码