用户登录

1、内部匿名类方式实现

layout

  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="wrap_content"
  5. tools:context=".MainActivity" >
  6.  
  7. <TextView
  8. android:id="@+id/textView1"
  9. android:layout_width="80dp"
  10. android:layout_height="35dp"
  11. android:textSize="16dp"
  12. android:gravity="bottom"
  13. android:text="@string/lab_loginid" />
  14.  
  15. <EditText
  16. android:id="@+id/editText1"
  17. android:layout_width="match_parent"
  18. android:layout_height="wrap_content"
  19. android:layout_toRightOf="@+id/textView1"
  20. android:hint="@string/txt_hint_loginid" />
  21.  
  22. <TextView
  23. android:id="@+id/textView2"
  24. android:layout_width="80dp"
  25. android:layout_height="35dp"
  26. android:textSize="16dp"
  27. android:gravity="bottom"
  28. android:layout_below="@+id/textView1"
  29. android:text="@string/lab_loginpwd" />
  30.  
  31. <EditText
  32. android:id="@+id/editText2"
  33. android:layout_width="match_parent"
  34. android:layout_height="wrap_content"
  35. android:layout_below="@+id/editText1"
  36. android:layout_toRightOf="@+id/textView2"
  37. android:ems="10"
  38. android:hint="@string/txt_hint_loginpwd"
  39. android:inputType="textPassword" >
  40. </EditText>
  41.  
  42. <Button
  43. android:id="@+id/button1"
  44. android:layout_width="match_parent"
  45. android:layout_height="wrap_content"
  46. android:layout_below="@+id/textView2"
  47. android:text="@string/btn_login" />
  48.  
  49. <ImageButton
  50. android:id="@+id/imageButton1"
  51. android:layout_width="match_parent"
  52. android:layout_height="wrap_content"
  53. android:layout_below="@+id/button1"
  54. android:src="@drawable/ic_btnlogin"/>
  55.  
  56. </RelativeLayout>

java代码

  1. public class MainActivity extends Activity {
  2.  
  3. @Override
  4. protected void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.activity_main);
  7.  
  8. // 获取页面中的按钮对象
  9. Button btnlogin = (Button) findViewById(R.id.button1);
  10.  
  11. // 添加事件,匿名内部类方式
  12. btnlogin.setOnClickListener(new OnClickListener() {
  13.  
  14. @Override
  15. public void onClick(View arg0) {
  16. String loginid = ((EditText) findViewById(R.id.editText1)).getText().toString();
  17. String loginpwd = ((EditText) findViewById(R.id.editText2)).getText().toString();
  18.  
  19. if (loginid.equals("admin") && loginpwd.equals("123123")) {
  20. //页面上弹出提示
  21. Toast.makeText(MainActivity.this, "登录成功", 1).show();
  22. } else {
  23. Toast.makeText(MainActivity.this, "登录失败", 1).show();
  24. }
  25. }
  26. });
  27. }
  28. }

2、外部类方式实现

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

  1. btnclickListener.java
  1. public class btnclickListener implements OnClickListener {
  2.  
  3. @Override
  4. public void onClick(View arg0) {
         //当调用公共的事件时,可以采用这种方式
  5. System.out.println("onclick");
  6. Log.e("click", "外部类点击事件");
  7. }
  8. }

MainActivity.java

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

3、接口方式实现事件

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

  1. public class MainActivity extends Activity implements OnClickListener{
  2.  
  3. @Override
  4. protected void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.activity_main);
  7.  
  8. // 获取页面中的按钮对象
  9. Button btnlogin = (Button) findViewById(R.id.button1);
  10.  
  11. //接口方式实现事件
  12. btnlogin.setOnClickListener(this);
  13. }
  14.  
  15. @Override
  16. public void onClick(View arg0) {
  17. Log.i("接口方式实现事件", "接口方式实现事件");
  18. }
  19. }

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. laravel的elixir和gulp用来对前端施工

    使用laravel elixer npm install --global gulp  ok 然后在安装好的laravel 下 npm install 以安装 laravel-elixir subli ...

  2. win8启用.net framework3.5方法

    管理员命令下执行dism.exe /online /enable-feature /featurename:NetFX3 /Source:L:\sources\sxs

  3. 【IDEA】IDEA设置修改完JS和JSP不用重启的办法(IDEA热部署)

    修改完JS和JSP不停的重启服务器真的很烦,所以设置修改完之后不用重启也生效: 前提有两个: 确保使用的是debug模式. 确保tomcat是由idea实例化的.也就是说tomcat是在idea中配置 ...

  4. (九)ubuntu解决resolv.conf被重写问题

    解决resolv.conf被重写问题 来源:http://www.cnblogs.com/lanxuezaipiao/p/3613497.html 第二步中你虽然配置了DNS,但是每次重启虚拟机或重启 ...

  5. 【leetcode】500. Keyboard Row

    问题描述: Given a List of words, return the words that can be typed using letters of alphabet on only on ...

  6. 给notepad++加nppFtp插件连接ubuntu编写文本

    打开notepad++的菜单栏中的插件,如果没有“插件管理”,去https://github.com/ashkulz/NppFTP/releases/tag/v0.27.2,下载对应的版本,将其解压后 ...

  7. 制作servlet模板

    制作servlet模板 选中window-->preference--->搜索template--->选中java下面的template new一个 Name的设置,当你在eclip ...

  8. vim注释颜色更改

    通过putty或者securecrt连到linux服务器,使用vi编辑*.php 或*.c文件时, 蓝色的注释很淡,看不清,看起来很费眼 效果如下 我本身有习惯于默认配色,不想修改配色方案,只想把看不 ...

  9. C#读取JSON字符串

    下面这个是一段JSON字符串宏观图 下面我们通过C#读取JSON字符串里的任何一个数值 string jsonString="上面JSON字符串"; //需要引用Newtonsof ...

  10. 利用System.Net.Mail 发送邮件

    我这里只是试了一下发mail的功能,感觉.net自带的发mail是比较全的,还是直接上我的code 参数文章:System.Net.Mail 发送邮件 SMTP协议 using System; usi ...