首页 > 代码库 > 王立平--android事件监听的3种方式

王立平--android事件监听的3种方式

第一种通常在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;

             }

王立平--android事件监听的3种方式