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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_14976351/article/details/37964969

在构造方法中使用匿名内部类实现事件监听器接口
一  通常在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;
	         }
	      }
	   }
	}


 

猜你喜欢

转载自blog.csdn.net/qq_14976351/article/details/37964969