android编程添加点击事件的4种方法

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

android程序中View的点击事件共有四种,除了在布局文件中为按钮设置属性外还有另外3种都用到了OnClickListener接口,只不过形式不同而已。


1.在布局文件中为按钮设置点击事件

在绑定的布局xml中有相应<Button  />中添加android:onClick="click"之后在与xml布局绑定的Activity中添加方法

public void click(View view){
      Log.i("已点击此按钮");
}


2.创建内部类

activity_main.xml中为控件设置id属性

<Button
      android:id="@+id/button1"
      …
/>

创建内部类实现OnClickListener接口

protected void onCreate(Bundle savedInstanceState){
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      Button1.setOnClickListener(new MyButton());
      Button2.setOnClickListener(new MyButton());
}
private class MyButton implements OnClickListener{
      @Override
      public void onClick(View v){
            switch(v.getId()){
                  case R.id.button:Log.i("点击id为button的按扭");break;
                  case R.id.button1:Log.i("点击id为button1的按扭");break;
             }
      }
}


3.主类中实现OnClickListener接口

public class MainActivity extends Activity implements OnClickListener{
      protected void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Button button1=setOnClickListener(this);
            Button button2=setOnClickListener(this);
      }
      @Override
      public void onClick(View v){
            switch(v.getId()){
                  case R.id.button:Log.i("点击id为button的按扭");break;
                  case R.id.button1:Log.i("点击id为button1的按扭");break;
             }
      }
}



4.匿名内部类

Button button1=(Button) findViewById(R.id.button1);
button1.setOnclickListener(new OnClickListener(){
      @Override
      public void onClick(View v){
            Log.i("通过匿名内部类的监听器实现绑定点击button1事件");
      }
});


注意:在实现OnClickListener接口时,为按钮设置点击事件要导入android.view.View包。

这几种方式都不难理解,方式1最好理解,本人常使用方式3。

猜你喜欢

转载自blog.csdn.net/abcnull/article/details/79328032