Android监听Button和ImageButton控件的点击事件
一、onClick事件
Button和ImageButton都有一个onClick事件,通过自身的.setOnClickListener(OnClickListener)方法添加点击事件
所有的控件都有onClick事件,不仅仅是Button和ImageButton才有
通过点击事件的监听可以实现点击按钮之后要发生什么动作
二、操作的基本步骤:
第一步:声明一个私有变量,用于存储获取到的控件对象
第二步:初始化当前需要的控件(找到需要操作的那个控件)
第三步:设置Button的监听器,通过监听器实现我们点击Button要操作的事情
三、匿名内部类的方式实现监听onClick事件
package com.muke.textview_edittext; import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; public class MainActivity extends Activity { private Button loginButton; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //1、初始化当前所需要的控件(就是找到需要操作的那个控件,findViewById方法返回的是view对象,需要向下转型成Button对象)
loginButton = (Button) findViewById(R.id.button1); //2、设置Button的监听器,通过监听器实现我们点击Button要操作的事情
loginButton.setOnClickListener(new OnClickListener() {
@Override
//在当前onClick方法中监听点击Button的动作
public void onClick(View v) {
System.out.println("我的Button被点击了");
}
});
}
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" > <Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/login" /> </LinearLayout>
四、外部类方式实现监听onClick事件
package com.muke.textview_edittext; import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast; public class MainActivity extends Activity { private Button loginButton;
private Button registerButton; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //1、初始化当前所需要的控件(就是找到需要操作的那个控件,findViewById方法返回的是view对象,需要向下转型成Button对象)
loginButton = (Button) findViewById(R.id.button1);
registerButton = (Button) findViewById(R.id.button2); //2、设置Button的监听器,通过监听器实现我们点击Button要操作的事情
loginButton.setOnClickListener(new MyOnClickListener(){
public void onClick(View v) {
super.onClick(v); //MyOnClickListener是父类,当点击这个按钮的时候会执行这个方法也会执行父类的onClick方法
Toast.makeText(MainActivity.this, "loginButton要执行了(子类)", 1).show();
}
}); registerButton.setOnClickListener(new MyOnClickListener(){
public void onClick(View v) {
super.onClick(v); //MyOnClickListener是父类,当点击这个按钮的时候会执行这个方法也会执行父类的onClick方法
Toast.makeText(MainActivity.this, "registerButton要执行了(子类)", 1).show();
}
});
}
} //OnClickListener是一个接口,所以使用implements 去实现
class MyOnClickListener implements OnClickListener{
@Override
public void onClick(View v) {
System.out.println("loginButton和registerButton要执行了(父类)");
v.setAlpha(0.5F); //设置两个按钮loginButton和registerButton的透明度
} }
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" > <Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/login" /> <Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/register" /> </LinearLayout>
五、接口方式实现监听onClick事件
package com.muke.textview_edittext; import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; public class MainActivity extends Activity implements OnClickListener{ private Button loginButton;
private Button imageButton; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //1、初始化当前所需要的控件(就是找到需要操作的那个控件,findViewById方法返回的是view对象,需要向下转型成Button对象)
loginButton = (Button) findViewById(R.id.button1);
imageButton = (Button) findViewById(R.id.imageButton1); loginButton.setOnClickListener(this);
imageButton.setOnClickListener(this);
} //2、设置Button的监听器,通过监听器实现我们点击Button要操作的事情
@Override
public void onClick(View v) {
System.out.println("第三种方式接口实现");
}
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" > <Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/login" /> <ImageButton
android:id="@+id/imageButton1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" /> </LinearLayout>
Android监听Button和ImageButton控件的点击事件的更多相关文章
- Android 使用代码主动去调用控件的点击事件(模拟人手去触摸控件)
使用代码主动去调用控件的点击事件(模拟人手去触摸控件) //View 可以是LinearLayout,Button,TextView View.performClick();
- Android简单的ListViewDemo及每个控件的点击事件
ListView是什么? ListView是一个 数据控件,可以展示从数据库中读取的数据.是.net3.5的新控件. 它比gridview更灵活,而且支持多种模板,支持分页. 文章地址 http:// ...
- 【WPF】监听WPF的WebBrowser控件弹出新窗口的事件
原文:[WPF]监听WPF的WebBrowser控件弹出新窗口的事件 WPF中自带一个WebBrowser控件,当我们使用它打开一个网页,例如百度,然后点击它其中的链接时,如果这个链接是会弹出一个新窗 ...
- android中RecyclerView控件实现点击事件
RecyclerView控件实现点击事件跟ListView控件不同,并没有提供类似setOnItemClickListener()这样的注册监听器方法,而是需要自己给子项具体的注册点击事件. 本文的例 ...
- 【MAUI】为 Label、Image 等控件添加点击事件
一.前言 已经习惯了 WPF.WinForm 中"万物皆可点击"的方式. 但是在 MAUI 中却不行了. 在 MAUI 中,点击.双击的效果,是需要通过"手势识别器&qu ...
- Android技能杂谈——如何优雅的处理控件的点击事件
首先分享一个最佳实践: 大家开发复杂一些的Android应用的时候常常会写一个BaseActivity或者BaseFragment,里面写上一些基本而公用的方法,比如监听网络状况.弹出对话框.设置ac ...
- Button控件的点击事件
Java的代码 主要重点: findViewById(); OnClickListener() package com.example.admin.myapplication; import andr ...
- 设置UITableView背景透明/监听cell左边的删除按钮的点击事件
_tableView = [[UITableView alloc] init]; _tableView.delegate = self; _tableView.dataSource = self; _ ...
- listview适配器中的控件的点击事件并传值
@Override public View getView(final int position, View convertView, ViewGroup parent) { // TODO Auto ...
随机推荐
- c#sqlhelper之用法
MySqlParameter[] a=new MySqlParameter[]{new MySqlParameter("@stu_id",stu_id)}; 参数使用
- Android 静默安装
有时候我们需要软件实现静默安装,但是Android并未提供相应的API,然而我们知道命令行安装android的时候是不会提示用户的,所有要实现这个功能,我们就可以从执行命令行的方式实现.android ...
- Uva 1347,旅行
题目链接:https://uva.onlinejudge.org/external/13/1347.pdf 这个题和uva 1658题目很像,只是加了一点,就是每个点都要走,刚开始,我以为可以直接拆点 ...
- CountDownLatch的原理学习
转载:http://blog.csdn.net/yanyan19880509/article/details/52349056 前言 前面介绍了ReentrantLock,又叫排他锁,本篇主要通过Co ...
- zoj Abs Problem
Abs Problem Time Limit: 2 Seconds Memory Limit: 65536 KB Special Judge Alice and Bob is pl ...
- java使用Cipher进行签名和验签
public static void main(String[] args) { try { String plainText = "duwenlei"; KeyPairGener ...
- UVALive 5075 Intersection of Two Prisms(柱体体积交)
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...
- c# SendMail
using System; using System.Collections.Generic; using System.Net; using System.Net.Mail; using Syste ...
- 【转载】理解C语言中的关键字extern
原文:理解C语言中的关键字extern 最近写了一段C程序,编译时出现变量重复定义的错误,自己查看没发现错误.使用Google发现,自己对extern理解不透彻,我搜到了这篇文章,写得不错.我拙劣的翻 ...
- pupper基线加固
1. 概述 puppet是一个开源的软件自动化配置和部署工具,它使用简单且功能强大,正得到了越来越多地关注,现在很多大型IT公司均在使用puppet对集群中的软件进行管理和部署,如google利用p ...