对于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 @Override19 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 @Override30 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:11052 // URL : 统一资源定位符 表示一个网络地址 http:// ftp:// rstp://53 // URI : 统一资源标示符 范围更加广泛54 startActivity(intent);55 }56 }57 58 private class DialButtonListener implements OnClickListener {59 @Override60 public void onClick(View v) {61 doClick();62 }63 }64 65 @Override66 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属性,此种方法通常在测试代码时使用,因为比较不直观,使代码难以维护