Android复习练习一(简单拨号器)

需求:简单的拨号器,布局需要一个输入框EditText,还有一个拨号按钮,负责拨号动作


1、在布局文件中加入:

<EditText
        android:id="@+id/et_number"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:hint="请输入电话号码" />
    
    <Button 
        android:id="@+id/btn_call"
        android:layout_marginTop="10dp"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="18dp"
        android:text="拨号"/>


2、在Activity的onCreate方法中先后获取两个控件的对象,都定义成成员变量,方便按钮的点击方法响应来调用:

private Button btnCall;
private EditText etNumber;

etNumber = (EditText) findViewById(R.id.et_number);
btnCall = (Button) findViewById(R.id.btn_call);



3、这里使用的方式不是直接在布局文件中给Button加入onclick属性,而是使用让Activity实现OnClickListener接口的onClick方法来实现,于是按钮btnCall的监听器设置为this
btnCall.setOnClickListener(this);

同时写上

public class MainActivity extends Activity implements OnClickListener

4、实现Listener对应的onClick方法,代码如下,注意事项有两点,一是这里只能使用隐式意图,因为调用的系统拨号的activity不是本应用的;打电话不仅要设置Action还要设置data为要拨打的号码:

@Override
public void onClick(View v) {
String number = etNumber.getText().toString().trim();
if(TextUtils.isEmpty(number)){
Toast.makeText(this, "对不起,电话号码不能为空", Toast.LENGTH_SHORT).show();
return ;
}else {
//这里只能用隐式意图,因为这里要调用系统打电话的Activity,不属于这个应用
Intent intent = new Intent();
//setAction里面的参数都是Intent类里面的静态成员变量
//同时在清单文件中需要加入对应的打电话的权限
intent.setAction(Intent.ACTION_CALL);

//打电话光设置动作还不够,还需要设置打电话的号码
//这里是固定写法,前面要加一个tel:
intent.setData(Uri.parse("tel:"+number));

//开始打电话Activity,这个是不需要回传数据的调用方法
startActivity(intent);
}


5、最后不要忘记拨打电话是需要对应的权限的,于是在清单文件manifest.xml中加入对应的permission

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值