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