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 ...
随机推荐
- 在opencv中实现中文输出
http://pan.baidu.com/s/1hrQTWDe 已经成功 ; 来自为知笔记(Wiz)
- JAVA基础知识之多线程——线程的生命周期(状态)
线程有五个状态,分别是新建(New).就绪(Runnable).运行(Running).阻塞(Blocked)和死亡(Dead). 新建和就绪 程序使用new会新建一个线程,new出的对象跟普通对象一 ...
- android导入项目出现style错误,menu错误
android导入项目出现style错误,menu错误 style //查看 res/values/styles.xml 下的报错点. <style name="AppBaseThem ...
- iOS奔溃日志总结
1,http://www.cnblogs.com/qingjoin/p/3515902.html 2,http://blog.csdn.net/u012269653/article/details/4 ...
- android“设置”里的版本号
在文件 packages/apps/Settings/src/com/android/settings/DeviceInfoSettings.java 中 setStringSummary(" ...
- SD卡驱动分析(一)
Android下的SD卡驱动与标准LINUX下的SD卡驱动好像没有太大的区别,这里就以高通的ANDROID 2.3以代表,来简要分析一下LINUX下SD卡驱动的写法.由于小弟的技术有限,分析的有错的地 ...
- GMM及EM算法
GMM及EM算法 标签(空格分隔): 机器学习 前言: EM(Exception Maximizition) -- 期望最大化算法,用于含有隐变量的概率模型参数的极大似然估计: GMM(Gaussia ...
- Hibernate 配置 转(http://blog.csdn.net/b671900/article/details/39156065)
做项目必然要先进行数据库表设计,然后根据数据库设计建立实体类(VO),这是理所当然的,但是到公司里做项目后,让我认识到,没有说既进行完数据库设计后还要再“自己”建立一变VO.意思是,在项目设计时,要么 ...
- java运行期类型鉴定
运行期类型识别?RTTI? 假如我们有一个基类的引用,这个引用也可以作为子类的引用嘛,现在我们想知道这个引用的类型到底是啥? 当从子类到基类之后有很多的信息都会丢失掉,比如有一个人类的对象可以看成普遍 ...
- [SAP ABAP开发技术总结]动态语句、动态程序
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...