控件设置监听器的一些方法
方法一.创建一个类实现View.OnClickListener接口
1 package com.keycky.TestListener; 2 3 import android.view.View; 4 import android.view.View.OnClickListener; 5 6 public class TextViewClickListener implements OnClickListener { 7 8 @Override 9 public void onClick(View v) {//此处的v表示触发该点击事件的对象。 10 // TODO Auto-generated method stub 11 System.out.println("TextView被点击了"); 12 } 13 14 }
创建TextViewClickListener类的对象,并调用helloWorldTextView的setOnClickListener方法把该对象传入给helloWorldTextView对象中的mOnclickListener属性,如果有点击事件,就会调用TextViewClickListener对象的onClick方法。
1 protected void onCreate(Bundle savedInstanceState) { 2 super.onCreate(savedInstanceState); 3 setContentView(R.layout.activity_main); 4 5 TextView testTextView = (TextView) findViewById(R.id.testTextView); 6 testTextView.setText("test"); 7 8 TextViewClickListener textViewClickListener = new TextViewClickListener(); 9 testTextView.setOnClickListener(textViewClickListener); 10 }
方法二,通过接口实现的匿名内部类来创建对象。
直接在onCreate方法中,创建OnClickListener接口的匿名内部类对象
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView testTextView = (TextView) findViewById(R.id.testTextView); helloWorldTextView.setText("test"); testTextView.setOnClickListener(new View.OnClickListener() {//此处也是要注意导入OnClickListener包要导入android.view.View包 @Override public void onClick(View v) { // TODO Auto-generated method stub System.out.println("匿名内部类实现的监听TextView点击!"); } }); }
感谢安卓杂谈网: http://www.yee4.com/blog/299.html
当然,还有第三种经常使用的方法
截自自己写的代码。
1 public class MainActivity extends Activity implements OnClickListener { 2 3 protected void onCreate(Bundle savedInstanceState) { 4 super.onCreate(savedInstanceState); 5 setContentView(R.layout.activity_main); 6 initviews(); 7 initEvents(); 8 } 9 private void initEvents() { 10 mGetImage.setOnClickListener(this); 11 mDetect.setOnClickListener(this); 12 } 13 14 15 private void initviews() { 16 mPhoto = (ImageView) findViewById(R.id.id_photo); 17 mGetImage = (Button) findViewById(R.id.id_getImage); 18 mDetect = (Button) findViewById(R.id.id_detect); 19 mTip = (TextView) findViewById(R.id.id_tip); 20 mWatting = findViewById(R.id.id_waitting); 21 22 } 23 public void onClick(View v) { 24 switch (v.getId()) { 25 case R.id.id_getImage: 26 break; 27 case R.id.id_detect: 28 break; 29 }
学而不思则惘