Android开发中,对按键的监听方法有很多种:
第一种:也是我经常使用的一种,先让activity实现监听的接口
public class DeviceControlActivity extends Activity implements View.OnClickListener
然后我就可以对按钮进行这样的操作
time6= (TextView) findViewById(R.id.ershisixiaoshi);
time6.setOnClickListener(this);
然后让它实现接口中的方法
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.sanshi://点击了30分钟
这种方法感觉比较好,可以将所有的监听都放到一起,查看代码的时候也容易找到,同时代码量也不大
第二种:这种我用的比较少,因为代码量有点多
就是将每一个按钮都要进行new一个OnClickListener
time6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//写点击后执行的方法
}
});
这种方法就是麻烦了点,而且每个按钮都这么写,要是代码多了也不好找
第三种:这种方法以前经常用,也是蛮好的,但是每个按钮都要在布局文件中加一句
android:onClick="doClick"
这样子在代码中就可以这样写了
public void doClick(View v) {
Intent intent=new Intent();
switch(v.getId()){
case R.id.wendu:
这样子就可以把所有的按钮的监听都集中在doClick这个方法中,也容易找到,不过布局文件中的onClick要写成一致哦,那肯定有人会说,要是没有写成一致,那怎么办?那就是方法四咯
第四种:这种方法个人感觉是最不好了
这种方法和第三种有点相似,但是我感觉完全没有第三种方法好用,不过还是可以了解下,万一你要看别人写的代码,但是那个变态偏偏用这种方法写的监听,估计你就看不懂了,一脸懵逼,哈哈
这种方法也是要在布局文件中加一句代码,如下:
android:onClick="getNTCAll"
或者这样
android:onClick="getCheckState"
每一个按钮都加一个onClick,后面的那个名字就是你在代码中的方法名,注意不止写doClick一个哦,方法名随便你自己取的,然后在代码中你就要这样写了
比如你对布局文件中的按钮写的onClick中的方法名是getNTCALL,那你在代码中的方法就是
/**
* 全部NTC校准信息按钮的监听
* @param view
*/
public void getNTCAll(View view) {
txtShow.setText("");
byte[] val;
val = Tools.hexStringToByteArray("210302");
val = PackData(val);
SendValToBluetooth(val);
}
如果你写的是getCheckState,那你在代码中的方法就是
/**
* 查询串口状态按钮的监听
* @param view
*/
public void getCheckState(View view) {
byte[] val;
val = Tools.hexStringToByteArray("FAF50721078B27");
SendValToBluetooth(val);
}
这种方法的好处也是有的,那就是你不要给这个按钮进行初始化,也就不要啥findviewbyId了,甚至你都不用给布局文件中的按钮给一个id,不初始化给id干嘛用,萝卜白菜各有所爱,看你自己喜欢哪种咯!!!
可能还有其他监听的方法,不过我就知道这么几种,望各位能够指导下补全!