强强笔记之安卓几种button点击事件

button点击事件应该是android最为基础的东西,因为几乎每个程序都要用到按钮,而按钮按钮,顾名思义就是要被点击嘛。。记得在刚学android的时候看到其他人的代码,发现他们对于点击事件都有自己的喜好的写法,因此本文总结了几种常用的响应方法。

首先真机演示图示为
这里写图片描述

以下每种方法效果都如图所示

匿名内部类法:
xml代码:
<Button
android:text="Button点击事件测试"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btn" />

java代码:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button btn= (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this,"被点击啦",Toast.LENGTH_SHORT).show();
            }
        });
    }
}


自定义监听类:

public class MainActivity extends Activity implements View.OnClickListener{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button btn= (Button) findViewById(R.id.btn);
        btn.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.btn:Toast.makeText(MainActivity.this,"被点击啦",Toast.LENGTH_SHORT).show();
        }
    }
}

这种写法一般是在有多个button要点击,学过c语言或者java都知道switch的基本用法,在这里就不多说了,相信大家都能看得懂。需要强调的几点是:一定要继承View.OnClickListener这个接口,我们可以看下这个接口的源码:

 public interface OnClickListener {
        /**
         * Called when a view has been clicked.
         *
         * @param v The view that was clicked.
         */
        void onClick(View v);
    }

可以看到里面只有一个抽象方法,根据接口的定义,我们要实现这个方法,否则会报错。
第二点就是我们要声明可点击事件,即btn.setOnClickListener(this);这行代码,点进去看源码可知这是设置按钮为可点击的,在看完所有点击事件的写法可以发现,设置按钮为可点击的是一个必需步骤,所以在以后写的时候就要注意了。

最后一种写法是本人最喜欢的
首先看下xml代码:
<Button
android:text="Button点击事件测试"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btn"
android:onClick="touchMe"
/>

可以发现多了android:onClick="touchMe"这一行代码,也就是直接在xml文件中声明按钮可点击
我们在看下java代码:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
  public void touchMe(View view){
      Toast.makeText(MainActivity.this,"被点击啦",Toast.LENGTH_SHORT).show();
  }
}

可以发现之前那段声明代码在MainActivity中不见了,这也对应了上面的xml文件。
如果有同学发现更多的写法,欢迎来联系我

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值