Android 事件监听器接口实现方法

来源:互联网 发布:矩阵行列式 编辑:程序博客网 时间:2024/05/19 01:31

在构造方法中使用匿名内部类实现事件监听器接口
一  通常在activity组件的onCreate事件中直接定义,直接动作。代码如:

public void onCreate(Bundle savedInstanceState) {    …    Button button1 = (Button)findViewById(R.id. myButton1);    button1.setOnClickListener(new View.OnClickListener() { @Override  public void onClick(View v) {     …;    }  });     … }

这种方式每个控件都定义一次,通常不方便。

 


二  外部类实现事件监听器接口
通常是在Activity组件中实现其接口。代码如:

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

这种在Activity 组件中实现其接口,可以让多个外部控件共享一个接口(多个控件可以通过一个onClick()来定义它们的回调操作。)


 

三   

内部类实现事件监听器接口
类似于第二种,代码如:

public class TestMedia extends Activity {   …   @override   public void onCreate(Bundle savedInstanceState) {      …      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;         }      }   }}


 

0 0