Android journey3 @点击事件的4种写法

对于android布局中的控件,如Button等会有相应的点击事件去响应它所需要的功能,今天我们就以电话拨号器的代码说明下几种点击事件:

 1 package com.itheima.phone;
 2 
 3 import android.net.Uri;
 4 import android.os.Bundle;
 5 import android.app.Activity;
 6 import android.content.Intent;
 7 import android.view.Menu;
 8 import android.view.View;
 9 import android.view.View.OnClickListener;
10 import android.widget.Button;
11 import android.widget.EditText;
12 import android.widget.Toast;
13 
14 public class MainActivity extends Activity implements OnClickListener {
15     private EditText et_number;
16 
17     // 当activity被启动的时候 调用的方法.
18     @Override
19     protected void onCreate(Bundle savedInstanceState) {
20         super.onCreate(savedInstanceState);
21         setContentView(R.layout.activity_main);
22         Button bt_dail = (Button) findViewById(R.id.bt_dail);
23         et_number = (EditText) findViewById(R.id.et_number);
24         // 点击事件的第一种写法
25         bt_dail.setOnClickListener(new DialButtonListener());
26 
27         // 点击事件的第二种写法.
28         bt_dail.setOnClickListener(new OnClickListener() {
29             @Override
30             public void onClick(View v) {
31                 doClick();
32             }
33         });
34         
35         //点击事件的第三种写法.
36         bt_dail.setOnClickListener(this);
37         
38 
39     }
40 
41     private void doClick() {
42         String number = et_number.getText().toString().trim();
43         if ("".equals(number)) {
44             Toast.makeText(MainActivity.this, "号码不能为空", Toast.LENGTH_SHORT)
45                     .show();
46         } else {
47             Toast.makeText(MainActivity.this, "拨打:" + number,
48                     Toast.LENGTH_SHORT).show();
49             Intent intent = new Intent();
50             intent.setAction(Intent.ACTION_CALL);
51             intent.setData(Uri.parse("tel:" + number)); // tel:110
52             // URL : 统一资源定位符 表示一个网络地址 http:// ftp:// rstp://
53             // URI : 统一资源标示符 范围更加广泛
54             startActivity(intent);
55         }
56     }
57 
58     private class DialButtonListener implements OnClickListener {
59         @Override
60         public void onClick(View v) {
61             doClick();
62         }
63     }
64 
65     @Override
66     public void onClick(View v) {
67         switch (v.getId()) {
68         case R.id.bt_dail:
69             doClick();
70             break;
71         }
72         
73     }
74     
75     //在xml布局文件的配置中,给button添加了属性 android:onClick = “响应函数名”  
76     public void btnClick(View view){
77         doClick();
78     }
79 }

 点击事件方法总结:

1、直接通过显示的内部类

2、通过匿名内部类

3、通过MainActivity实现OnClickListener:通常在界面中有较多需要响应的控件时使用

4、直接在xml文件中配置对应控件的onClick属性,此种方法通常在测试代码时使用,因为比较不直观,使代码难以维护

 
原文地址:https://www.cnblogs.com/allenpengyu/p/3569483.html