android 12 click事件的不同实现方式
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"> <Button
android:id="@+id/btnLogin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="登陆"
android:onClick="onClick"/>
<Button
android:id="@+id/btnExit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="退出"
android:onClick="onClick"/> </RelativeLayout>
1 继承:
package com.sxt.day03_04; import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;
activity:写逻辑代码地方,自动创建,不能自己去new,第一个调用onCreate方法,
public class MainActivity extends Activity implements OnClickListener{ @Override
protected void onCreate(Bundle savedInstanceState) {
//savedInstanceState用于保存Activity中的数据,是一个hashMap,
super.onCreate(savedInstanceState);
//将activity_main.xml设置为本Activity显示的布局
//R代表res文件夹,只要res文件夹中有id值的控件都会在R中创建一个常量,
setContentView(R.layout.activity_main);
//将MainActivity.this地址保存在Button.OnClickListener属性中
//点击的时候执行this这个监听器的onClick方法
findViewById(R.id.btnLogin).setOnClickListener(this);
findViewById(R.id.btnExit).setOnClickListener(this);
} @Override
public void onClick(View v) {//View是所有布局的基类
switch (v.getId()) {
case R.id.btnLogin:
Toast.makeText(this, "执行登陆操作", 2000).show();
break;
case R.id.btnExit:
finish();
break;
}
} }
2 内部有名类:
package com.sxt.day03_05; import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//将MainActivity.this地址保存在Button.mOnClickListener属性中
//用内部类(内部有名类,不是匿名类)实现,如果很多类都用LoginClickListener这个对象则有很好的复用性
findViewById(R.id.btnLogin).setOnClickListener(new LoginClickListener());
} class LoginClickListener implements OnClickListener{
@Override
public void onClick(View v) {
if(v.getId()==R.id.btnLogin){
Toast.makeText(MainActivity.this, "执行登陆操作", 2000).show();
}
}
} }
3 外部类
package com.sxt.day03_06; import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.Toast; public class MainActivity extends Activity {
EditText metId,metPwd;//用户名 密码 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
setListener();//设置按钮的点击事件监听器
} private void setListener() {
MyClickListener listener=new MyClickListener(metId, metPwd, this);
findViewById(R.id.btnLogin).setOnClickListener(listener);
findViewById(R.id.btnExit).setOnClickListener(listener);
} private void initView() {
metId=(EditText) findViewById(R.id.etId);
metPwd=(EditText) findViewById(R.id.etPwd);
} }
package com.sxt.day03_06; import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.Toast; public class MyClickListener implements OnClickListener {
EditText metId,metPwd;
MainActivity mActivity; public MyClickListener(EditText metId, EditText metPwd,
MainActivity mActivity) {
super();
this.metId = metId;
this.metPwd = metPwd;
this.mActivity = mActivity;
} @Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnExit:
mActivity.finish();//关闭Mainactivity
break;
case R.id.btnLogin:
//取出登陆编号
String id=metId.getText().toString();
String pwd=metPwd.getText().toString();
Toast.makeText(mActivity, "登陆编号:"+id+",登陆密码:"+pwd, Toast.LENGTH_LONG).show();
break;
}
} }
android 12 click事件的不同实现方式的更多相关文章
- android点击事件的四种方式
android点击事件的四种方式 第一种方式:创建内部类实现点击事件 代码如下: package com.example.dail; import android.text.TextUtils; im ...
- Android 按钮响应事件的几种方式
目录 1.在布局中指定onClick属性 2.使用匿名内部类 3.在当前Activity中实现OnClickListener接口 4.创建内部类 1.在布局中指定onClick属性 布局代码 < ...
- jq和js中click 事件的几种方式总结和click事件的累加问题解决办法
1:常见的三种绑定click事件: 第一种:$("#click").click(function(){ alert("Hello World click") ...
- jquery调用click事件的三种方式
第一种方式: $(document).ready(function(){ $("#clickme").click(function(){ alert("Hello Wor ...
- android button click事件
package a.a; import android.app.Activity;import android.os.Bundle;import android.view.View;import an ...
- 界面跳转+Android Studio Button事件的三种方式
今天学习界面跳转 java类总是不能新建成功 看了网上教程 (20条消息) 关于android studio无法创建类或者接口问题的解决方法_qq_39916160的博客-CSDN博客 可以新建了 但 ...
- Android实现双击事件的两种方式
Work around的方法是先监听onTouch事件来监听连续点击次数,每次点击都布置一个间隔时间的延时任务,延时任务执行时判断间隔内是否还有点击,如果没有则发布点击次数,重置计数. 实现代码如下: ...
- jquery移除click事件
原文链接:https://blog.csdn.net/weixin_41228949/article/details/83142661 在html中定义click事件有两种方式,针对这两种方式有两种移 ...
- Android 12(S) 图像显示系统 - drm_hwcomposer 简析(下)
必读: Android 12(S) 图像显示系统 - 开篇 合成方式 合成类型的定义:/hardware/interfaces/graphics/composer/2.1/IComposerClien ...
随机推荐
- [Linux]关机和重启命令
Linux中常用的关机和重新启动命令有shutdown.halt.reboot以及init,它们都可以达到关机和重新启动的目的,但是每个命令的内部工作过程是不同的,下面将逐一进行介绍. 1. shu ...
- python中的函数的参数和可变参数
最近在搞python的过程中需要用到给函数传可变参数..所以去网上找前人的帖子学习了一下 为了尊重原作者,这里附上链接:http://www.cnblogs.com/tqsummer/archive/ ...
- Ipv6_Only-b
网上好多关于ipv6的资料,说半天ipv6是什么,怎么建立测试环境,,,可是没有看到具体的操作和解决的方案,这里,为大家提供一种方案,希望给大家带来帮助吧. 总的来说有三个方面需要进行检查和修改: 1 ...
- 64位Win7下安装并配置Python3的深度学习库:Theano
注:本文全原创,作者:Noah Zhang (http://www.cnblogs.com/noahzn/) 这两天在安装Python的深度学习库:Theano.尝试了好多遍,CMake.MinGW ...
- 0x1L
整形常量的后缀表示其类型,包括如下后缀,其中U和L的大小写通用 后缀 类型L long int LL long long int U ...
- 7 Tools for Data Visualization in R, Python, and Julia
7 Tools for Data Visualization in R, Python, and Julia Last week, some examples of creating visualiz ...
- 在objc项目中使用常量的最佳实践
在objc项目中使用常量的最佳实践 之前,在在objc项目中使用常量中,使用c的预处理#define来设置常量.比如,可以做个头文件,然后在需要的类文件中import,使用常量. 但这不是最佳实践 ...
- nginx的autoindex-目录浏览还有其它两个参数
不知的话,显示的时间是不一定是我们想要的.. http://blog.csdn.net/yuanchao99/article/details/16354163 Nginx打开目录浏览功能(autoin ...
- mysql左联右联内联
在MySQL中由于性能的关系,常常要将子查询(Sub-Queries)用连接(join)来却而代之,能够更好地使用表中索引提高查询效率. 下面介绍各种join的使用,先上图: 我们MySQL常用的为左 ...
- UE编辑器加载格式化代码插件astyle
UE 的格式化功能不强,自带的astyle版本陈旧,一般采用开源工具astyle来实现代码格式化. 1. 首先下载最新的astyle,因为ue自带的astyle版本太老,不支持空格.中文名等. 2. ...