1.普通内部类(常用)

xml

<Button
android:hint="reset"
android:layout_columnWeight="1"
android:id="@+id/reset"/>

java

public class MainActivity extends AppCompatActivity {

 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gridexlayout);
//添加监听器
//监听器 本身是一个接口,需要写实现类
Button bt_reset = (Button)findViewById(R.id.reset); //第一种 设置监听器的实现类的实例
bt_reset.setOnClickListener(new ResetButtonClickListen()); }
//1.用内部类实现监听器的接口
private class ResetButtonClickListen implements View.OnClickListener
{
public void onClick(View v)
{
Button bt = (Button)v;
String str = bt.getText().toString(); //在内部类里调用外部类的实例:外部类的类名.this
Toast.makeText(MainActivity.this,str+"click",Toast.LENGTH_LONG).show();
}
}
}

2.匿名内部类

java

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gridexlayout); Button bt_reset = (Button)findViewById(R.id.reset); //第二种 匿名内部类
bt_reset.setOnClickListener(new View.OnClickListener(){ public void onClick(View v)
{
Button bt = (Button)v;
String str = bt.getText().toString(); //在内部类里调用外部类的实例:外部类的类名.this
Toast.makeText(MainActivity.this,str+"click",Toast.LENGTH_LONG).show();
}
});
}

3.外部类

java

public class MainActivity extends AppCompatActivity {
//public class MainActivity extends AppCompatActivity implements View.OnClickListener { //bt_reset.setOnClickListener(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gridexlayout); //添加监听器
//监听器 本身是一个接口,需要写实现类
Button bt_reset = (Button)findViewById(R.id.reset); //第三种 外部类
//bt_reset.setOnClickListener(new WaibuListener()); }
}

java2

package com.example.chenshuai.test322;

import android.view.View;
import android.widget.Button; /**
* Created by chenshuai on 2016/3/26.
*/
public class WaibuListener implements View.OnClickListener {
public void onClick(View v)
{
Button bt = (Button)v;
String str = bt.getText().toString(); }
}

4.直接绑到标签上

xml

<Button
android:hint="send"
android:layout_columnWeight="1"
android:onClick="onclick"/>

java

public class MainActivity extends AppCompatActivity {
//public class MainActivity extends AppCompatActivity implements View.OnClickListener { //bt_reset.setOnClickListener(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gridexlayout); //添加监听器
//监听器 本身是一个接口,需要写实现类
Button bt_reset = (Button)findViewById(R.id.reset); //传递的View参数 是触发这个事件视图实例(在这里是Button)
public void onclick(View v)
{
Button bt = (Button)v;
String str = bt.getText().toString(); Toast.makeText(this,str+"Button click",Toast.LENGTH_LONG).show();
}
}

5.Avtivity直接实现

java

    public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    bt_reset.setOnClickListener(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gridexlayout); //添加监听器
//监听器 本身是一个接口,需要写实现类
Button bt_reset = (Button)findViewById(R.id.reset);
}
}

Android——UI事件的处理机制(基于监听器)的更多相关文章

  1. Android触摸事件的分发机制

    ---恢复内容开始--- 一.MotionEvent : ACTION_DOWN(下按事件).ACTION_UP(松开事件).ACTION_MOVE(移动事件) 二.三大函数 1.dispatchTo ...

  2. android的事件分发传递机制

    事件的分发与传递最重要的三个处理方法是 dispatchTouchEvent onInterceptTouchEvent onTouchEvent 综合来说事件的 传递是由外层向里层传递,而处理是从里 ...

  3. 一张图让你明确Android Touch事件的传递机制

  4. (转)Android Touch事件传递机制

    -----来源:http://www.trinea.cn/android/touch-event-delivery-mechanism/ 介绍Android Touch事件的传递机制. 不少朋友私信问 ...

  5. Android Touch事件传递机制具体解释 上

    尊重原创:http://blog.csdn.net/yuanzeyao/article/details/37961997 近期总是遇到关于Android Touch事件的问题,如:滑动冲突的问题,曾经 ...

  6. Android Touch事件传递机制详解 上

    最近总是遇到关于Android Touch事件的问题,如:滑动冲突的问题,以前也花时间学习过Android Touch事件的传递机制,可以每次用起来的时候总是忘记了,索性自己总结一下写篇文章避免以后忘 ...

  7. Android触摸事件的应用

    前言 上一篇讲了Android触摸事件的传递机制,具体可以看这里 初识Android触摸事件传递机制.既然知道Android中触摸事件的传递分发,那么它能解决什么样的问题,在我们实际开发中如何应用,这 ...

  8. Android Touch事件传递机制 一: OnTouch,OnItemClick(监听器),dispatchTouchEvent(伪生命周期)

      ViewGroup View  Activity dispatchTouchEvent 有 有 有 onInterceptTouchEvent 有 无 无 onTouchEvent 有 有 有 例 ...

  9. Android基础新手教程——3.1 基于监听的事件处理机制

    Android基础新手教程--3.1.1 基于监听的事件处理机制 标签(空格分隔): Android基础新手教程 本节引言: 第二章我们学习的是Android的UI控件,我们能够利用这些控件构成一个精 ...

随机推荐

  1. RS查询报错之递归公用表表达式不包含顶级 UNION ALL运算符

    在FM里面涉及模型的时候,修改了物理层的查询SQL如下 select * from TARGET_VISIT_GH where ghksdm in(select dept_id from DIM_BI ...

  2. 显示器驱动程序 NVIDIA Windows Kernel Mode Driver Version 已停止响应 并且己成功恢复 解决方法

    原文:http://news.160.com/?p=1890 在玩游戏中 经常 出现显示器驱动程序 NVIDIA Windows Kernel Mode Driver Version 已停止响应 并且 ...

  3. Jmeter--google plugin插件监控被測系统资源方法

    一.插件准备 1.插件下载地址 http://jmeter-plugins.org/downloads/all/ 下面有两个版本号的.1.1.2和1.1.3.注意Jmeter版本号 1.1.2支持Jm ...

  4. 内存映射(Linux设备驱动程序)

    第一部分:mmap系统调用直接将设备内存映射到用户进程的地址空间里. 第二部分:跨越边界直接訪问用户空间的内存页.一些相关的驱动程序须要这样的能力,(用户空间内存怎样映射到内核中的方法get_user ...

  5. Oracle中CBO优化器简介

    Oracle中CBO优化器简介 Oracle数据库中的优化器是SQL分析和执行的优化工具.它负责制定SQL的执行计划,也就是它负责保证SQL的执行计划的效率最高,比如优化器决定Oracle以什么样的方 ...

  6. 【Leet Code】String to Integer (atoi) ——常考类型题

    String to Integer (atoi) Total Accepted: 15482 Total Submissions: 106043My Submissions Implement ato ...

  7. 算法笔记_141:无向图的欧拉回路判断问题(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 Problem Description 欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路.现给定一个图,问是否存在欧拉回 ...

  8. Vagrant up Warning: Authentication failure. Retrying...

    Vagrant up Warning: Authentication failure. Retrying... Vagrant up Warning: Authentication failure. ...

  9. 【微信公众号】微信关于网页授权access_token和普通access_token的区别及两种不同方式授权

    微信官网网址:https://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html#.E9.99.84.EF.BC.9A.E6. ...

  10. 解决tomcat启动慢

    1.在Tomcat环境中解决 可以通过配置JRE使用非阻塞的Entropy Source. 在catalina.sh中加入这么一行:-Djava.security.egd=file:/dev/./ur ...