03 Button对象的事件

原创 2017年09月19日 21:34:45

当窗口或控件的状态发生时会自动触发调用相应的事件函数。 在Android里,这些事件是由各种监听器类来管理实现的,如一个按钮对象可以setOnClickListener设置在被单击时触发的监听器. 监听器是一个由抽像函数组成的接口, 具体的事件处理代码就写在抽像函数的实现里。

一个按钮对象可以设置的监听器有:
这里写图片描述

监听器的用法基本上就是创建一个监听器对象,并实现它里面的抽像函数,再由按钮对象来设置使用监听器对象。


如在一个窗口上有两个按钮,每个按钮对象单击时做的事件不同,所以每个按钮对象都创建一个OnClickListener对象. 并在创建对象时实现抽像函数onClick().

/* MyActivity.java */
package com.example.jk.listener;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;

public class MyActivity extends Activity {
    private Button btn1, btn2;
    private LinearLayout hlayout;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        btn1 = new Button(this);
        btn1.setText("btn1");
        btn2 = new Button(this);
        btn2.setText("btn2");

        hlayout = new LinearLayout(this);
        hlayout.setOrientation(LinearLayout.HORIZONTAL);

        hlayout.addView(btn1);
        hlayout.addView(btn2);

        setContentView(hlayout);

        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                System.out.println("btn1");
            }
        });

        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                System.out.println("btn2");
            }
        });
    }
}

编译执行程序后,可以在”Android Monitor”里查看到点击按钮时的输出信息:
这里写图片描述


还可以让窗口类实现OnClickListener接口的方式,当创建一个窗口对象时也就会创建出一个OnClickListener的对象了. 让所有的按钮对象共同使用这个创建出来的监听器对象。

/* MyActivity.java */
package com.example.jk.listener;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;

public class MyActivity extends Activity implements View.OnClickListener{ //实现监听器的接口
    private Button btn1, btn2;
    private LinearLayout hlayout;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        btn1 = new Button(this);
        btn1.setText("btn1");
        btn2 = new Button(this);
        btn2.setText("btn2");

        hlayout = new LinearLayout(this);
        hlayout.setOrientation(LinearLayout.HORIZONTAL);

        hlayout.addView(btn1);
        hlayout.addView(btn2);

        setContentView(hlayout);

        //设置按钮使用当前窗口对象里的监听器对象
        btn1.setOnClickListener(this);
        btn2.setOnClickListener(this);
    }
    public void onClick(View v) {
        if (v == btn1)
            System.out.println("btn1");
        if (v == btn2)
            System.out.println("btn2");
    }
}
版权声明:本文为博主原创文章,未经博主允许转载。

asp.net按钮 button的onclick事件 与oncommand 事件的区别

asp.net按钮 button的onclick事件 与oncommand 事件的区别 汇总转:http://panjunlai.blog.163.com/blog/static/5819030120...
  • wslyy99
  • wslyy99
  • 2010年04月02日 10:33
  • 1586

去掉手机页面a,button,input默认触发事件

去掉a标签、input标签、button标签手机网页点击默认事件(边框),增强体验效果。--肖明伟...
  • sanai_1992
  • sanai_1992
  • 2017年01月22日 11:02
  • 763

Unity之Button响应事件

BUtton响应事件
  • qq_28300187
  • qq_28300187
  • 2017年03月28日 20:20
  • 2443

Android ListView中的Button屏蔽onItemClick事件解决办法

来源(貌似他也是转载的):http://blog.csdn.net/gyflyx/article/details/6567701 关键点: 1.ListView每一项的布局中,顶级布局需要声明an...
  • jjding1986
  • jjding1986
  • 2012年08月24日 16:45
  • 2382

[ASP.NET]button 的动态生成以及触发事件的实现

摘自 MSDN帮助文档(ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.NETDEVFX.v20.chs/cpref16/html/C_System_Web_U...
  • Jresins
  • Jresins
  • 2007年02月02日 11:46
  • 2160

js中button事件的简单示例

Code: "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transition...
  • youshini
  • youshini
  • 2010年10月31日 10:25
  • 3304

ios按钮事件的处理

ios按钮事件的处理    iOS对按钮的事件处理很有意思,我看到一种方法是直接一拖一拉,生成方法的,当然还有直接使用代码实现了,在这里做一下笔记,这是使用第一种方法的。   1,首先打开Main.s...
  • u013013970
  • u013013970
  • 2015年11月13日 11:00
  • 1338

MFC Button Control事件获取的两种方法

MFC 响应Button事件的两种方法
  • ieczw
  • ieczw
  • 2016年03月12日 11:40
  • 3925

Xcode view button 链接到 事件

拖到代码区即可
  • wide288
  • wide288
  • 2013年11月17日 22:58
  • 2966

DataGridView数据绑定控件---------按钮添加和事件触发总结

DataGridView数据绑定控件---------按钮添加和事件触发总结
  • aganar
  • aganar
  • 2011年04月01日 12:57
  • 11356
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:03 Button对象的事件
举报原因:
原因补充:

(最多只允许输入30个字)