android控件的监听绑定方法

总结一下,android的监听绑定方法主要有一下五种方法。分别讲述一下:


【方法一】通过xml文件绑定

首先讲的这种方法比较少使用。在支付宝第三方中有应用。

       

在xml布局文件中,通过android:onClick="method_name"方法绑定一个方法名为method_name的监听相应,在点击时会通过反射的方法调用该方法。在这段代码中,给button绑定了一个方法名为pay的监听相应。对应的,在使用这个xml的Activity中,需要实现该pay()方法。

public void pay(View v) {
	//your method
}
在OnCreate中是需要setContentView(),甚至不需要findViewById就可以实现监听绑定了。


【方法二】匿名内部类

这种方法较为简便,但是在需要绑定的监听较多的情况下,代码可读性下降。在空间较多的Activity中不建议使用。例如给ivImage设置监听

ivImage.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				//your method
			}
		});


【方法三】自定义事件监听类

这种方法比较清晰。在控件或者监听较多的情况下,使用该方法比较方便。而且实现事件监听类可以在构造方法中传入一些必须的参数。

public class shareButtonListener implements OnClickListener {
		private Content contentChoose;

		public shareButtonListener(Content content) {
                        //传入Content类型
			super();
			this.contentChoose = content;
		}

		public shareButtonListener() {
			super();
		}

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			// your method
		}
	};
 
  

【方法五】Activity继承View.OnClickListener,由Activity实现OnClick(View view)方法,在OnClick(View view)方法中用switch-case对不同id代表的button进行相应的处理。但是这种方法在需要绑定的控件监听较多的情况下,可读性也就太好。

public class TestButtonActivity extends Activity implements OnClickListener {
 
  Button btn1, btn2;
  Toast tst;
 
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test_button);
 
    btn1 = (Button) findViewById(R.id.button1);
    btn2 = (Button) findViewById(R.id.button2);
 
    btn1.setOnClickListener(this);
    btn2.setOnClickListener(this);
  }
 
  @Override
  public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (v.getId()) {
    case R.id.button1:
      tst = Toast.makeText(this, "111111111", Toast.LENGTH_SHORT);
      tst.show();
      break;
    case R.id.button2:
      tst = Toast.makeText(this, "222222222", Toast.LENGTH_SHORT);
      tst.show();
      break;
    default:
      break;
    }
  }
}







你可能感兴趣的:(android,控件,监听,android,控件,监听)