Button、ImageButton事件监听(setOnClickListener)

方法一:通过匿名内部类实现

代码如下:

package com.note.demo2;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; public class MainActivity extends ActionBarActivity {
//声明登录按钮loginButton
private Button loginButton;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化按钮,把xml中的按钮赋值给声明的变量 ,通过R的ID寻找。
//findViewById返回的是一个view对象,要转换成button对象,设置一个button监听对象。
loginButton=(Button) findViewById(R.id.button1); // 1、监听事件通过匿名内部类实现
loginButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//在当前onClick方法中监听点击button动作
show("通过内部类实现,你点击我了哦");
}
});
}
public void show(String str){
Toast toasts=Toast.makeText(this,str , Toast.LENGTH_SHORT);
toasts.show(); }
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}

结果:

方法二:通过独立类实现

package com.note.demo2;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast; public class MainActivity extends ActionBarActivity { //声明登录按钮loginButton
private Button loginButton;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化按钮,把xml中的按钮赋值给声明的变量 ,通过R的ID寻找。
//findViewById返回的是一个view对象,要转换成button对象,设置一个button监听对象。
loginButton=(Button) findViewById(R.id.button1); // 2、监听事件通过独立类实现
loginButton.setOnClickListener(listener);
}
OnClickListener listener=new OnClickListener() {
public void onClick(View v) {
show("通过独立类实现,你点击我了哦");
}
};
public void show(String str){
Toast toasts=Toast.makeText(this, str, Toast.LENGTH_SHORT);
toasts.setGravity(Gravity.TOP, 0, 220);
toasts.show(); }
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}

结果如下:

方法三:通过接口的方式实现事件监听

package com.note.demo2;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast; public class MainActivity extends ActionBarActivity implements OnClickListener { //声明登录按钮loginButton
private Button loginButton;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化按钮,把xml中的按钮赋值给声明的变量 ,通过R的ID寻找。
//findViewById返回的是一个view对象,要转换成button对象,设置一个button监听对象。
loginButton=(Button) findViewById(R.id.button1); //通过实现接口的方法实现监听事件 loginButton.setOnClickListener(this);
}
public void onClick(View v) {
show("通过实现接口的方法实现");
} public void show(String str){
Toast toasts=Toast.makeText(this, str, Toast.LENGTH_SHORT);
toasts.setGravity(Gravity.TOP, 0, 220);
toasts.show(); }
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
} }

结果如下:

Android事件监听(二)——点击鼠标事件的更多相关文章

  1. 高德地图marker事件监听-高德地图marker绑定事件就执行了[解决立即执行]

    官方的demo是这样的:地址:[http://lbs.amap.com/api/javascript-api/example/infowindow/add-infowindows-to-multipl ...

  2. JS基础(二)事件监听练习之table鼠标悬停行变色

    JS监听事件简单学习: [object].addEvent("事件类型","处理函数","冒泡事件或捕获事件");   [object].r ...

  3. android 活动监听是否点击某个view

    前述(写给做过web前端的人) 在web H5,如果如果判断当前是否点击某个元素,一般会这样写. window.addEventListener("touchstart",func ...

  4. 关于实现自定义Dialog和实现Dialog里view的事件监听的两种方法

    一.自定义dialog. 二.实现dialog里view的事件监听 1.自定义dialog比较简单.在实例化new的时候,加入样式,布局就行了.或者重写dialog. 2.实现dialog里view的 ...

  5. java Gui编程 事件监听机制

    1.     GUI编程引言 以前的学习当中,我们都使用的是命令交互方式: 例如:在DOS命令行中通过javac java命令启动程序. 软件的交互的方式:   1. 命令交互方式    图书管理系统 ...

  6. [JS]笔记12之事件机制--事件冒泡和捕获--事件监听--阻止事件传播

    -->事件冒泡和捕获-->事件监听-->阻止事件传播 一.事件冒泡和捕获 1.概念:当给子元素和父元素定义了相同的事件,比如都定义了onclick事件,点击子元素时,父元素的oncl ...

  7. Android:监听ListView

    本文目录 监听ListView点击事件 监听ListView滚动事件 监听ListView点击事件 使用监听器OnItemClickListener package com.example.tests ...

  8. js事件监听机制(事件捕获)总结

    在前端开发过程中我们经常会遇到给页面元素添加事件的问题,添加事件的js方法也很多,有直接加到页面结构上的,有使用一些js事件监听的方法,由于各个浏览器对事件冒泡事件监听的机制不同,le浏览器只有事件冒 ...

  9. jQuery中的事件监听小记

    一,一个事件监听的简便写法 最近发现一个jQuery中事件监听的简洁写法,感觉方便好多.同时也深感自己基础薄弱,好多东西竟然都模棱两可.因此,记录的同时,也对jQuery事件监听做个小的总结 原文链接 ...

  10. js事件监听机制(事件捕获)

    在前端开发过程中我们经常会遇到给页面元素添加事件的问题,添加事件的js方法也很多,有直接加到页面结构上的,有使用一些js事件监听的方法,由于各个浏览器对事件冒泡事件监听的机制不同,le浏览器只有事件冒 ...

随机推荐

  1. Spring MVC 面试题

    什么是springMVC?作用? springMVC是一种web层mvc框架,用于替代servlet(处理|响应请求,获取表单参数,表单校验等). 为什么要用springMVC? 基本上,框架的作用就 ...

  2. [采坑] VS2015 warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失

    问题: Visual Studio 2015出现warning C4819: 该文件包含不能在当前代码页(936)中表示的字符.请将该文件保存为 Unicode 格式以防止数据丢失. 解决方案: 1. ...

  3. Java类路径的问题

    下面是eclipse中的文件组织形式. 下面是硬盘中文件的组织形式: src:中就是自己编写的没有编译的代码. target中是编译的Java中的class文件和一些不用编译的文件.这样也就明白了为什 ...

  4. 「TJOI2019」大中锋的游乐场

    题目链接 问题分析 比较明显的最短路模型.需要堆优化的dij.建图的时候注意细节就好. 参考程序 #include <bits/stdc++.h> #define LL long long ...

  5. SimpleThreadPool给线程池增加自动扩充线程数量,以及闲时自动回收的功能

    给线程池增加自动扩充线程数量,以及闲时自动回收的功能 package com.dwz.concurrency.chapter13; import java.util.ArrayList; import ...

  6. axios多并发请求

    场景: 点击导出Excel按钮实现,姓名列表中前五个的所有的文章数据发送给后端,姓名列表中点击过的数据会被存放到localStorage中: 思路: 点击导出按钮,把前五个数据逐个和localStor ...

  7. vue router 报错:NavigationDuplicated {_name: "NavigationDuplicated", name: "NavigationDuplicated"}

    https://blog.csdn.net/weixin_43202608/article/details/98884620

  8. for循环遍历对比

    1.for(var i=0; i<10; i++):遍历数组 var arr = ['11', '22']; for(var i=0; i<arr.length;i++){ console ...

  9. JAVA-retry 重试

    在看 ThreadPoolExecutor 源码时看到这么一段代码 retry: for (;;) { int c = ctl.get(); int rs = runStateOf(c); // Ch ...

  10. Git 合并两个分支内容

    1,将开发分支代码合入到master中 git checkout dev #切换到dev开发分支 git pull git checkout master git merge dev #合并dev分支 ...