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属性,此种方法通常在测试代码时使用,因为比较不直观,使代码难以维护

 

你可能感兴趣的:(android)