第一种也是最开始就接触的方式,通常在activity组件的oncreate事件中直接定义,直接动作。这种方式每个控件都定义一次,通常不方便.

Button btn = (Button) findViewById(R.id.myButton);
btn .setOnClickListener(new View.OnClickListener() {
         public void onClick(View v) {
 //do something
         }
     });

 

第二种通常是在activity组件实现其接口,这样可以多外控件共享一个接口,这样相对方便

public class TestMedia extends Activity implements View.OnClickListener{
Button btn1 = (Button) findViewById(R.id.myButton1);
Button btn2 = (Button) findViewById(R.id.myButton2);

btn1 .setOnClickListener();
btn2 .setOnClickListener();
}
 public void onClick(View v) {
             switch (v.getId()) {
                case R.id. myButton1: 
 //do something
                break;
                case R.id. myButton2: 
 //do something
                break;
             }

 

第三种类似第二种,这样的好处在于如果需要实现多个监听接口,这样更清晰

public class TestMedia extends Activity {
Button btn1 = (Button) findViewById(R.id.myButton1);
Button btn2 = (Button) findViewById(R.id.myButton2);
btn1 .setOnClickListener(new ClickEvent());
btn2 .setOnClickListener(new ClickEvent());
}
class ClickEvent implements View.OnClickListener
 public void onClick(View v) {
             switch (v.getId()) {
                case R.id. myButton1: 
 //do something
                break;
                case R.id. myButton2: 
 //do something
                break;
             }

 

posted on 2015-11-09 09:46  asker7  阅读(201)  评论(0)    收藏  举报

asker7