<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. 用linux的shell脚本把目录下面的所有文件的文件内容中的小写字母改成大写字母

    最近工作中,产品组的同事给出的数据里面都是小写字母 ,但是引擎组的同事要求他们拿到的从数据里面解析出的结构体里面存储的要都是大写结构,这让我们数据预处理组很尴尬啊,,所以在写了个这么样的脚本,在解析数 ...

  2. INI解析模块的C++实现

    INI文件格式是某些平台或软件上的配置文件的非正式标准,以节(section)和键(key)构成,常用于微软Windows操作系统中. 节(section) 节用方括号括起来,单独占一行,例如: [s ...

  3. bzoj 1004 1004: [HNOI2008]Cards burnside定理

    1004: [HNOI2008]Cards Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1668  Solved: 978[Submit][Stat ...

  4. bzoj 1022: [SHOI2008]小约翰的游戏John anti_nim游戏

    1022: [SHOI2008]小约翰的游戏John Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 1189  Solved: 734[Submit][ ...

  5. matlab的cell数组

    matlab的cell数组 元胞数组: 元胞数组是MATLAB的一种特殊数据类型,可以将元胞数组看做一种无所不包的通用矩阵,或者叫做广义矩阵.组成元胞数组的元素可以是任何一种数据类型的常数或者常量,每 ...

  6. Android 进入另外一个窗体的两种方法

    方法一: Intent intent = new Intent(); intent.setClassName(this, "com.wuyou.twoactivity.OtherActivi ...

  7. KeilC51高级编程

    第一节 绝对地址访问 C51提供了三种访问绝对地址的方法: 1. 绝对宏: 在程序中,用“#include<absacc.h>”即可使用其中定义的宏来访问绝对地址,包括: CBYTE.XB ...

  8. 转-----实现基本的Ajax和Json请求

    前面已经封装好了一个方法ajax(),通过这个方法可以实现Ajax请求,接下来就是给出 例程来测试这个方法和实现简单的功能.   视图的部分代码如下: 1 2 3 4 5 6 7 8 9 <bo ...

  9. HDU-4972 A simple dynamic programming problem

    http://acm.hdu.edu.cn/showproblem.php?pid=4972 ++和+1还是有区别的,不可大意. A simple dynamic programming proble ...

  10. HTML5 Canvas JavaScript库 Fabric.js 使用经验

    首先,表明我的态度:采用 Flash 才是最优方案,不建议使用 HTML 5 的 Canvas 做一些生产/工业级的网页应用. Flash的优势一是浏览器支持好,二是代码成熟稳定.而HTML5 的 C ...