您的位置:首页 > 移动开发 > Android开发

Androidx学习笔记(3)-- 电话拨号器编写

2016-01-18 18:20 351 查看
功能:用户输入一个号码,点击拨打按钮,启动系统打电话的应用把号码拨打出去

一个拨打电话功能其实是有两个应用构成的:

一个是拨号应用 system/app/Dialer.apk

一个是打电话应用 system/app/Phone.apk

我们此时需要编写的就是拨号器,对于如何打电话,我们现在不去处理,直接调用系统的即可



1. 定义布局

<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"
>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="请输入电话号码" />

<EditText
android:id="@+id/et_dialer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle=""
/>

<Button
android:id="@+id/btn_dialer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="拨打电话"
/>

</LinearLayout>


注意:

组件必须设置宽高,否则不能通过编译

android:layout_width="wrap_content"
android:layout_height="wrap_content"


如果要在java代码中操作某个组件,则组件需要设置id,这样才能在代码中通过id拿到这个组件
android:id="@+id/et_phone"

2. 给按钮设置点击侦听 并把号码打出去

public class MainActivity extends Activity {

private Button btnDialer = null;
private EditText etDialer = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//给按钮设置监听
//1. 获取按钮对象
btnDialer = (Button)findViewById(R.id.btn_dialer);

//2 设置监听
btnDialer.setOnClickListener(new MyDialerListener());

}

//创建一个Button按钮的监听
class MyDialerListener implements OnClickListener {
// 点击按钮的时候会调用此方法
@Override
public void onClick(View v) {
// 获取输入的号码
etDialer = (EditText) findViewById(R.id.et_dialer);
String phone = etDialer.getText().toString();

// 创建打电话的意图
Intent intent = new Intent();

// 把打电话的动作封装到意图对象中
intent.setAction(Intent.ACTION_CALL);

// 把打给谁的号码作为数据封装到意图对象中
intent.setData(Uri.parse("tel:"+phone));

// 把动作告诉系统
startActivity(intent);
}

}

}

3.在清单文件(AndroidManifest.xml)中添加权限

<uses-permission android:name="android.permission.CALL_PHONE"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: