博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 四种绑定监听事件的方式
阅读量:2085 次
发布时间:2019-04-29

本文共 1671 字,大约阅读时间需要 5 分钟。

1、

直接通过id查找后,绑定匿名内部类作为事件监听类。代码如下:

Button loginButton = (Button) findViewById(R.id.tologin1);

btn1.setOnclickListener(new OnclickListener(){

       public void onClick(View v){

       // 要执行的操作

       }

});

这种方法有好也有不好,好的是比较直观方便,不好的是,如果按钮多了,代码看起来比较乱。

2、

实现点击事件的接口,然后一个个按钮地去绑定,最后统一做处理。代码如下:

public class ActivityLogin1 extends Activity implements View.OnClickListener

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

btnLogin.setOnClickListener(this);

btnBack = (Button) findViewById(R.id.back);

btnBack.setOnClickListener(this);

@Override

public void onClick(View v) {
switch (v.getId()) {
case R.id.back:
//对应操作

break;

case R.id.btnLogin:

//对应操作

break;

.......

}

}

这种方法有点批量处理的味道。统一处理,可以让代码看起来更加结构化。

3、

自定义监听事件类,实现点击事件的接口。代码如下:

Button btn1=(Button)findViewById(R.id.myButton1);

Button btn2=(Button)findViewById(R.id.myButton2);

btn1.setOnclickListener(new Startclick());

btn2.setOnclickListener(new Stopclick());

class StartClick implements OnClickListener{

       public void onClick(View v){//或直接跟上要执行的动作

              switch(v.getId()){

                     case R.id.myButton1:

                            //要执行的动作

              }

       }

}

class StopClick implements OnClickListener{

或直接跟上要执行的动作

      public void onClick(View v){

              switch(v.getId()){

                     case R.id.myButton2:

                            //要执行的动作

              }

       }

}

第三种方法我用得比较少,代码参考别人的。详情可见,http://blog.sina.com.cn/s/blog_48b5bee10102uwmz.html。

4、

我要重点说一下第四种方法。因为比较常用第一种和第二种,有次看支付宝开发集成demo时,找按钮的监听事件找了半天找不到。那里面使用的就是这种绑定方式。代码如下:

<Button

            android:id="@+id/pay"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:onClick="pay"
            android:text="支付"
            tools:ignore="HardcodedText" />

public void pay(View v) {

//要执行的操作

}

这种方法比较简便,因为我不常用,差点忘了还有这种方法。重点是在xml布局里,android:onClick="pay",pay是一个方法名,你要在这个布局对应的Activity里面实现这个方法。

转载地址:http://hssqf.baihongyu.com/

你可能感兴趣的文章
A星算法详解(个人认为最详细,最通俗易懂的一个版本)
查看>>
利用栈实现DFS
查看>>
(PAT 1019) General Palindromic Number (进制转换)
查看>>
(PAT 1080) Graduate Admission (排序)
查看>>
Play on Words UVA - 10129 (欧拉路径)
查看>>
mininet+floodlight搭建sdn环境并创建简答topo
查看>>
【linux】nohup和&的作用
查看>>
Set、WeakSet、Map以及WeakMap结构基本知识点
查看>>
【NLP学习笔记】(一)Gensim基本使用方法
查看>>
【NLP学习笔记】(二)gensim使用之Topics and Transformations
查看>>
【深度学习】LSTM的架构及公式
查看>>
【python】re模块常用方法
查看>>
剑指offer 19.二叉树的镜像
查看>>
剑指offer 20.顺时针打印矩阵
查看>>
剑指offer 23.从上往下打印二叉树
查看>>
Leetcode C++《热题 Hot 100-18》538.把二叉搜索树转换为累加树
查看>>
Leetcode C++《热题 Hot 100-21》581.最短无序连续子数组
查看>>
Leetcode C++《热题 Hot 100-22》2.两数相加
查看>>
Leetcode C++《热题 Hot 100-23》3.无重复字符的最长子串
查看>>
Leetcode C++《热题 Hot 100-24》5.最长回文子串
查看>>