android 三种点击事件实现

来源:互联网 发布:鲅鱼圈网络维护 编辑:程序博客网 时间:2024/06/06 04:34
在构造方法中使用匿名内部类实现事件监听器接口
通常在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;
     }
  }
}


内部类实现事件监听器接口
类似于第二种,代码如:
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;
        }
     }
  }
}

原创粉丝点击