Android-Button点击事件的四种写法

工具:Android Studio 2.2.2
水平:新手

  • 新建一个名为ButtonClick工程。

  • 布局很简单,设置一个id为button的Button即可。

<Button
android:id="@+id/button"
android:text="@string/btn_clickme"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

1.匿名内部类

public class MainActivity extends AppCompatActivity {

private Button button;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    button = (Button)findViewById(R.id.button);

    //第一种方法-匿名内部类
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            switch (v.getId()){
                case R.id.button:
                    Toast.makeText(MainActivity.this,"第一种方式",Toast.LENGTH_SHORT).show();
                    break;
                default:
                    break;
            }
        }
    });

}

}

2.自定义监听类

//第二种方法-自定义点击事件监听类
class MyButtonClickLinstener implements View.OnClickListener{
    @Override
    public void onClick(View v){
        switch (v.getId()) {
            case R.id.button:
                Toast.makeText(MainActivity.this, "第二种方式", Toast.LENGTH_SHORT).show();
                break;
            default:
                break;
        }
    }
}
  • 调用的时候直接new。

button.setOnClickListener(new MyButtonClickLinstener());

3.Activity继承View.OnClickListener

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
}

  • 绑定的时候,直接使用this

    button.setOnClickListener(this);


写个onClick方法,不用加@Override
public void onClick(View v){
    switch (v.getId()){
        case R.id.button:
            Toast.makeText(MainActivity.this,"第三种方式",Toast.LENGTH_SHORT).show();
            break;
        default:
            break;
    }
}

4.使用android:onClick的属性

**在布局文件中修改Button的onClick属性为onClick。**

android:onClick=”onClick”

  • 不需要setOnClickListener方法了。直接使用第三种方法的onClick方法即可。

android:onClick绑定的是一个方法,方法名可以自定义,如testClick,然后在ManiActivity里写testClick方法。

public void testClick(View v){
    switch (v.getId()){
        case R.id.button:
            Toast.makeText(MainActivity.this,"我也是第四种方式",Toast.LENGTH_SHORT).show();
            break;
        default:
            break;
    }
}

小结:

  • 当按钮较少时,可以使用第一种和第二种写法。
  • 当按钮较多时,可以使用第三种,方便。
  • 第四种很灵活。

5.参考资料:

[1].http://www.jb51.net/article/55329.htm

[2].http://blog.csdn.net/a9529lty/article/details/7542828/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值