控件设置监听器的一些方法

方法一.创建一个类实现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 }

学而不思则惘
原文地址:https://www.cnblogs.com/keyky/p/4941057.html