<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事件的不同实现方式的更多相关文章

  1. android点击事件的四种方式

    android点击事件的四种方式 第一种方式:创建内部类实现点击事件 代码如下: package com.example.dail; import android.text.TextUtils; im ...

  2. Android 按钮响应事件的几种方式

    目录 1.在布局中指定onClick属性 2.使用匿名内部类 3.在当前Activity中实现OnClickListener接口 4.创建内部类 1.在布局中指定onClick属性 布局代码 < ...

  3. jq和js中click 事件的几种方式总结和click事件的累加问题解决办法

     1:常见的三种绑定click事件: 第一种:$("#click").click(function(){ alert("Hello World  click") ...

  4. jquery调用click事件的三种方式

    第一种方式: $(document).ready(function(){ $("#clickme").click(function(){ alert("Hello Wor ...

  5. android button click事件

    package a.a; import android.app.Activity;import android.os.Bundle;import android.view.View;import an ...

  6. 界面跳转+Android Studio Button事件的三种方式

    今天学习界面跳转 java类总是不能新建成功 看了网上教程 (20条消息) 关于android studio无法创建类或者接口问题的解决方法_qq_39916160的博客-CSDN博客 可以新建了 但 ...

  7. Android实现双击事件的两种方式

    Work around的方法是先监听onTouch事件来监听连续点击次数,每次点击都布置一个间隔时间的延时任务,延时任务执行时判断间隔内是否还有点击,如果没有则发布点击次数,重置计数. 实现代码如下: ...

  8. jquery移除click事件

    原文链接:https://blog.csdn.net/weixin_41228949/article/details/83142661 在html中定义click事件有两种方式,针对这两种方式有两种移 ...

  9. Android 12(S) 图像显示系统 - drm_hwcomposer 简析(下)

    必读: Android 12(S) 图像显示系统 - 开篇 合成方式 合成类型的定义:/hardware/interfaces/graphics/composer/2.1/IComposerClien ...

随机推荐

  1. 序列化魔术函数__sleep()和反序列化魔术函数__wakeup()

    1.string serialize ( mixed $value )— 产生一个可存储的值的表示 serialize() 返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方. ...

  2. 数据库基本概念-oracle介绍

    甲骨文公司,全称甲骨文股份有限公司是全球最大的企业软件公司,总部位于美国加利福尼亚州的红木滩.甲骨文是继Microsoft及IBM后,全球收入第三多的软件公司.甲骨文公司1989年正式进入中国市场.重 ...

  3. C语言变量声明加冒号的用法

    有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位.例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可.为了节省存储空间,并使处理简便,C语言又提供了一种数据结构 ...

  4. theano中的logisticregression代码学习

    1 class LogisticRegression (object): 2 def __int__(self,...): 3 4 #定义一些与逻辑回归相关的各种函数 5 6 def method1( ...

  5. C#反射(二) 【转】

    如果没有看<C#反射(一)>.建议先看<C#反射(一)>再看这一篇.上一篇文章发表,有人评论我所写的东西比较基础.其实我也知道我也只不过是在写最基础的语法而已,之所以写它是因为 ...

  6. h.264宏块与子宏块类型

    宏块类型mb_type 宏块类型表示的是宏块不同的分割和编码方式,在h.264的语法结构中,宏块类型在宏块层(macroblock_layer)中用mb_type表示(请参考h.264语法结构分析中的 ...

  7. Java静态类

    先要澄清和区别一些概念,“静态类”和“所有方法皆为静态方法的类”. 严格说来,Java中的静态类,指的是“static class”这样修饰的类定义,语法上的要求,使得这样的类一定是内部类,换言之,“ ...

  8. 事务Isolation Level 例子详解

    举例分析: 我们有A表, 包含两条数据. Read uncommitted: 假设我们有两个事务 Trans1, Trans2. 它们的操作如下: Trans 1: 更新A1 -> A11, 然 ...

  9. 【HDOJ】1811 Rank of Tetris

    并查集+拓扑排序.使用并查集解决a = b的情况. #include <iostream> #include <cstdio> #include <cstring> ...

  10. 分布式文件系统MFS(moosefs)实现存储共享(第二版)

    分布式文件系统MFS(moosefs)实现存储共享(第二版) 作者:田逸(sery@163.com) 由于用户数量的不断攀升,我对访问量大的应用实现了可扩展.高可靠的集群部署(即lvs+keepali ...