简单介绍一下
Android中click事件的四种写法,使用的工程是上一篇文章修改的,代码如下:
- package com.mxy.dail;
- 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;
- public class MainActivity extends Activity implements OnClickListener {
- //定义变量
- private Button btnDail;
- private EditText phoneNumber;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- //使用findViewById 获取按钮和文本框对象 并进行类型的强制转换
- btnDail = (Button) findViewById(R.id.btn_dail);
- //为按钮添加监听事件
- // 1 使用内部类
- //btnDail.setOnClickListener(new MyListener());
- // 2 匿名内部类
- /* btnDail.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- callPhone();
- }
- });*/
- // 3 主类实现OnClickListener接口 可以统一处理多个事件
- // 多个按钮都调用该段代码,然后在onclick方法里面,判断点击的是哪个按钮,然后再进行处理
- btnDail.setOnClickListener(this);
- // 4 在布局文件中配置点击事件,同时在Activity中实现该方法
- // <Button
- // android:onClick="btnClick" ---->这里定义一个方法
- // android:id="@+id/btn_dail"
- // android:layout_width="wrap_content"
- // android:layout_height="wrap_content"
- // android:layout_alignLeft="@+id/number"
- // android:layout_below="@+id/number"
- // android:layout_marginTop="21dp"
- // android:text="@string/str_dail" />
- //方法如下
- // public void btnClick(View v){
- // callPhone();
- // }
- phoneNumber = (EditText) findViewById(R.id.number);
- }
- private void callPhone() {
- //获取输入的电话号码
- EditText phoneNumber = (EditText) MainActivity.this.findViewById(R.id.number);
- String number = phoneNumber.getText().toString();
- //验证电话号码是否可用
- //想干什么
- Intent intent = new Intent();
- //具体想做什么
- intent.setAction(Intent.ACTION_CALL);
- intent.setData(Uri.parse("tel:" + number));
- //使用这个需要在AndroidManifest.xml文件中添加对应的权限 android.permission.CALL_PHONE
- startActivity(intent);
- }
- private class MyListener implements OnClickListener{
- @Override
- public void onClick(View v) {
- callPhone();
- }
- }
- @Override
- public void onClick(View v) {
- callPhone();
- }
-