用户登录

1、内部匿名类方式实现

layout

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context=".MainActivity" > <TextView
android:id="@+id/textView1"
android:layout_width="80dp"
android:layout_height="35dp"
android:textSize="16dp"
android:gravity="bottom"
android:text="@string/lab_loginid" /> <EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/textView1"
android:hint="@string/txt_hint_loginid" /> <TextView
android:id="@+id/textView2"
android:layout_width="80dp"
android:layout_height="35dp"
android:textSize="16dp"
android:gravity="bottom"
android:layout_below="@+id/textView1"
android:text="@string/lab_loginpwd" /> <EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/editText1"
android:layout_toRightOf="@+id/textView2"
android:ems="10"
android:hint="@string/txt_hint_loginpwd"
android:inputType="textPassword" >
</EditText> <Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/textView2"
android:text="@string/btn_login" /> <ImageButton
android:id="@+id/imageButton1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/button1"
android:src="@drawable/ic_btnlogin"/> </RelativeLayout>

java代码

public class MainActivity extends Activity {

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // 获取页面中的按钮对象
Button btnlogin = (Button) findViewById(R.id.button1); // 添加事件,匿名内部类方式
btnlogin.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
String loginid = ((EditText) findViewById(R.id.editText1)).getText().toString();
String loginpwd = ((EditText) findViewById(R.id.editText2)).getText().toString(); if (loginid.equals("admin") && loginpwd.equals("123123")) {
//页面上弹出提示
Toast.makeText(MainActivity.this, "登录成功", 1).show();
} else {
Toast.makeText(MainActivity.this, "登录失败", 1).show();
}
}
});
}
}

2、外部类方式实现

首先定义个类,实现OnClickListener接口

btnclickListener.java
public class btnclickListener implements OnClickListener {

    @Override
public void onClick(View arg0) {
     //当调用公共的事件时,可以采用这种方式
System.out.println("onclick");
Log.e("click", "外部类点击事件");
}
}

MainActivity.java

btnlogin.setOnClickListener(new btnclickListener(){
  @Override
public void onClick(View arg0) {
    super.onClick(arg0); //调用父类的事件,也就是btnclickListener的Click事件
    Toast.makeText(MainActivity.this, "登录成功", 1).show();
  }
});

3、接口方式实现事件

首先用当前Activity继承事件接口,并实现事件方法,然后设置setOnClickListener方法使用this。

public class MainActivity extends Activity implements OnClickListener{

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // 获取页面中的按钮对象
Button btnlogin = (Button) findViewById(R.id.button1); //接口方式实现事件
btnlogin.setOnClickListener(this);
} @Override
public void onClick(View arg0) {
Log.i("接口方式实现事件", "接口方式实现事件");
}
}

Android学习(一) 按钮的事件的更多相关文章

  1. Android学习系列(43)--使用事件总线框架EventBus和Otto

    事件总线框架 针对事件提供统一订阅,发布以达到组件间通信的解决方案. 原理 观察者模式. EventBus和Otto 先看EventBus的官方定义: Android optimized event ...

  2. Android代码规范----按钮单击事件的四种写法

    [前言] 按钮少的时候用第三种的匿名内部类会比较快,比如写demo测试的时候或者登陆界面之类. 按钮多的时候一般选择第四种写法. 一.第一种写法:在XML文件中声明onClick属性(很少用) 在XM ...

  3. Android学习-----Button点击事件几种写法

    Button点击事件:大概可以分为以下几种: 匿名内部类 定义内部类,实现OnClickListener接口 定义的构造方法 用Activity实现OnClickListener接口 指定Button ...

  4. Android学习笔记点击事件和触摸事件的区别

    当我们点击手机屏幕的时候Android系统不仅会触发单击事件,还会触发触摸事件.在Android中它会先触发触摸事件,如果这个触摸事件没有被消费掉再去触发单击事件 代码示例: MainActivty. ...

  5. android 学习第一天 了解事件机制,页面跳转等常用操作

    点击时间2种 第一种,通过初始化页面 写入点击事件 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedI ...

  6. Android Studio 增加按钮响应事件

    在xml文件里增加android:onClick属性 比如: android:onClick=doanything 然后写响应方法 public void doanything(View v) { . ...

  7. Android学习笔记长按事件的处理

    常见的长按事件 代码示例: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedIns ...

  8. 转--Android按钮单击事件的四种常用写法总结

    这篇文章主要介绍了Android按钮单击事件的四种常用写法总结,比较了常见的四种写法的优劣,有不错的参考借鉴价值,需要的朋友可以参考下     很多学习Android程序设计的人都会发现每个人对代码的 ...

  9. Android按钮单击事件的四种常用写法总结

    很多学习Android程序设计的人都会发现每个人对代码的写法都有不同的偏好,比较明显的就是对控件响应事件的写法的不同.因此本文就把这些写法总结一下,比较下各种写法的优劣,希望对大家灵活地选择编码方式可 ...

  10. [Android] 按钮单击事件的五种写法

    在平时学习安卓的过程中,不论是看视频还是看博客,我发现每个人对代码的写法都有不同的偏好,比较明显的就是对控件响应事件的写法的不同.所以我想把这些写法总结一下,比较下各种写法的优劣,希望可以让自己可以灵 ...

随机推荐

  1. 关于"implicit declaration of function 'gettimeofday' is invalid in c99"的解决

    http://blog.csdn.net/macmini/article/details/10503799 当我们使用 gettimeofday(&time, NULL);时,会出现这样一个W ...

  2. C# Log4Net使用示例

    using log4net; using log4net.Config; using System; using System.IO; namespace Three.Logging { /// &l ...

  3. flask的orm框架(SQLAlchemy)-操作数据

    # 原创,转载请留言联系 Flask-SQLAlchemy 实现增加数据 用 sqlalchemy 添加数据时,一定要注意,不仅仅要连接到数据表,并且你的创建表的类也必须写进来.而且字段和约束条件要吻 ...

  4. tf一些理解(根据资料)

    首先看了开源操作机器人系统-ros这本书(张建伟)第五章slam导航 5.1使用tf配置机器人 还有ros navigation 教程 http://wiki.ros.org/navigation/T ...

  5. 【原创】Talend ETL开发——基于joblet的统一的email发送

    更新 2019/1/16:增加了允许5个附件发送.smtp等配置的字段. 一.背景 在ETL数据整合过程中,肯定会涉及到email的通知,比如ETL的执行情况汇报,执行耗时汇报,关键数据更新情况等信息 ...

  6. windows7_64位安装sql_server_2000成功

    对于4合一的版本来说只要找到安装包里的 STANDARD.PERSONAL.ENTERPRISE.DEVELOPER文件夹下的 X86\SETUP\SETUPSQL.EXE 任何一个运行即可,(理论上 ...

  7. Buffer源码深入分析

    博客园对MarkDown显示的层次感不是很好,大家可以看这里:Buffeer. 本机环境: Linux 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33 ...

  8. Listener监听器笔记1

    1.常用的Web事件监听器接口: 1.ServletContextListener:用于监听Web应用的启动和关闭. 2.ServletContextAttributeListener:用于监听Ser ...

  9. SQL 连表更新

    现在数据如下: 需求如下: 要求 更新 Earnings 表中的Earnings字段 当 Table_2 KPI 大于等于1时 Earinings = KPI* 2000,否则等于 KPI* 1500 ...

  10. 《Flex 第一步》

    //什么是FlexFlex 是一个针对企业级富互联网应用的表示层解决方案.具体地说,Flex是一种应用程序框架.富互联网应用程序,Rich Internet Application,简称RIA,将桌面 ...