zoukankan      html  css  js  c++  java
  • Android 登陆功能实现

      1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      2 xmlns:custom="http://schemas.android.com/apk/res-auto"
      3 android:layout_width="fill_parent"
      4 android:layout_height="fill_parent"
      5 android:fitsSystemWindows="true" > 
      6 <RelativeLayout 
      7 android:id="@+id/login_layout"
      8 android:layout_width="fill_parent"
      9 android:layout_height="wrap_content"
     10 android:layout_marginLeft="20dp"
     11 android:layout_marginRight="20dp"
     12 android:gravity="center" > 
     13 <FrameLayout 
     14 android:id="@+id/username_layout"
     15 android:layout_width="fill_parent"
     16 android:layout_height="wrap_content"
     17 android:layout_marginTop="55dp"
     18 android:gravity="center" > 
     19 <!-- android:inputType="number" --> 
     20 <EditText 
     21 android:id="@+id/username"
     22 android:layout_width="fill_parent"
     23 android:layout_height="40dp"
     24 android:layout_marginTop="5dp"
     25 android:maxLength="20"
     26 android:paddingLeft="55dp"
     27 android:paddingRight="60dp" > 
     28 </EditText> 
     29 <ImageView 
     30 android:layout_width="22dp"
     31 android:layout_height="21dp"
     32 android:layout_gravity="left|center_vertical"
     33 android:layout_marginStart="10dp"
     34 android:background="@drawable/username"
     35 android:visibility="visible" /> 
     36 <TextView 
     37 android:id="@+id/contry_sn"
     38 android:layout_width="40dp"
     39 android:layout_height="50dp"
     40 android:layout_gravity="left|center_vertical"
     41 android:layout_marginTop="4dp"
     42 android:gravity="center"
     43 android:text="+62"
     44 android:textColor="@android:color/black"
     45 android:textSize="18sp"
     46 android:visibility="invisible" /> 
     47 <Button 
     48 android:id="@+id/bt_username_clear"
     49 android:layout_width="35dp"
     50 android:layout_height="35dp"
     51 android:layout_gravity="right|center_vertical"
     52 android:layout_marginRight="10dp"
     53 android:background="@drawable/email_delete_pressed"
     54 android:visibility="invisible" /> 
     55 </FrameLayout> 
     56 <FrameLayout 
     57 android:id="@+id/usercode_layout"
     58 android:layout_width="fill_parent"
     59 android:layout_height="wrap_content"
     60 android:layout_below="@id/username_layout"
     61 android:layout_marginTop="6dp"
     62 android:gravity="center" > 
     63 <EditText 
     64 android:id="@+id/password"
     65 android:layout_width="fill_parent"
     66 android:layout_height="40dp"
     67 android:inputType="textPassword"
     68 android:maxLength="20"
     69 android:paddingLeft="55dp"
     70 android:paddingRight="60dp" > 
     71 </EditText> 
     72 <ImageView 
     73 android:layout_width="18dp"
     74 android:layout_height="21dp"
     75 android:layout_gravity="left|center_vertical"
     76 android:layout_marginStart="10dp"
     77 android:background="@drawable/password" /> 
     78 <Button 
     79 android:id="@+id/bt_pwd_eye"
     80 android:layout_width="40dp"
     81 android:layout_height="40dp"
     82 android:layout_gravity="right|center_vertical"
     83 android:layout_marginRight="10dp"
     84 android:background="@drawable/password_close" /> 
     85 <Button 
     86 android:id="@+id/bt_pwd_clear"
     87 android:layout_width="35dp"
     88 android:layout_height="35dp"
     89 android:layout_gravity="right|center_vertical"
     90 android:layout_marginRight="45dp"
     91 android:background="@drawable/email_delete_pressed"
     92 android:visibility="invisible" /> 
     93 </FrameLayout> 
     94 <Button 
     95 android:id="@+id/login"
     96 android:layout_width="fill_parent"
     97 android:layout_height="40dp"
     98 android:layout_below="@id/usercode_layout"
     99 android:layout_marginTop="30dp"
    100 android:background="@drawable/login_selector"
    101 android:gravity="center"
    102 android:text="登录"
    103 android:textColor="@android:color/white" /> 
    104 <Button 
    105 android:id="@+id/forgive_pwd"
    106 android:layout_width="wrap_content"
    107 android:layout_height="wrap_content"
    108 android:layout_alignRight="@id/login"
    109 android:layout_below="@id/login"
    110 android:background="#00000000"
    111 android:text="忘记密码?"
    112 android:textColor="@drawable/text_color_selector"
    113 android:textSize="16sp" /> 
    114 <Button 
    115 android:id="@+id/register"
    116 android:layout_width="wrap_content"
    117 android:layout_height="wrap_content"
    118 android:layout_alignLeft="@id/login"
    119 android:layout_below="@id/login"
    120 android:background="#00000000"
    121 android:gravity="left|center_vertical"
    122 android:text="注册"
    123 android:textColor="@drawable/text_color_selector"
    124 android:textSize="16sp"
    125 android:visibility="visible" /> 
    126 </RelativeLayout> 
    127 </RelativeLayout>

    MainActivity如下:

      1 package com.example.logindemo; 
      2 import android.support.v7.app.ActionBarActivity; 
      3 import android.text.Editable; 
      4 import android.text.TextWatcher; 
      5 import android.text.method.HideReturnsTransformationMethod; 
      6 import android.text.method.PasswordTransformationMethod; 
      7 import android.view.View; 
      8 import android.view.View.OnClickListener; 
      9 import android.widget.Button; 
     10 import android.widget.EditText; 
     11 import android.widget.Toast; 
     12 import android.os.Bundle; 
     13 /** 
     14 * 登录界面Demo 
     15 * 
     16 * @author ZHY 
     17 * 
     18 */
     19 public class MainActivity extends ActionBarActivity implements OnClickListener { 
     20 private EditText username, password; 
     21 private Button bt_username_clear; 
     22 private Button bt_pwd_clear; 
     23 private Button forgive_pwd; 
     24 private Button bt_pwd_eye; 
     25 private Button login; 
     26 private Button register; 
     27 private boolean isOpen = false; 
     28 @Override
     29 protected void onCreate(Bundle savedInstanceState) { 
     30 super.onCreate(savedInstanceState); 
     31 setContentView(R.layout.activity_main); 
     32 initView(); 
     33 } 
     34 private void initView() { 
     35 username = (EditText) findViewById(R.id.username); 
     36 // 监听文本框内容变化 
     37 username.addTextChangedListener(new TextWatcher() { 
     38 @Override
     39 public void onTextChanged(CharSequence s, int start, int before, 
     40 int count) { 
     41 // 获得文本框中的用户 
     42 String user = username.getText().toString().trim(); 
     43 if ("".equals(user)) { 
     44 // 用户名为空,设置按钮不可见 
     45 bt_username_clear.setVisibility(View.INVISIBLE); 
     46 } else { 
     47 // 用户名不为空,设置按钮可见 
     48 bt_username_clear.setVisibility(View.VISIBLE); 
     49 } 
     50 } 
     51 @Override
     52 public void beforeTextChanged(CharSequence s, int start, int count, 
     53 int after) { 
     54 } 
     55 @Override
     56 public void afterTextChanged(Editable s) { 
     57 } 
     58 }); 
     59 password = (EditText) findViewById(R.id.password); 
     60 // 监听文本框内容变化 
     61 password.addTextChangedListener(new TextWatcher() { 
     62 @Override
     63 public void onTextChanged(CharSequence s, int start, int before, 
     64 int count) { 
     65 // 获得文本框中的用户 
     66 String pwd = password.getText().toString().trim(); 
     67 if ("".equals(pwd)) { 
     68 // 用户名为空,设置按钮不可见 
     69 bt_pwd_clear.setVisibility(View.INVISIBLE); 
     70 } else { 
     71 // 用户名不为空,设置按钮可见 
     72 bt_pwd_clear.setVisibility(View.VISIBLE); 
     73 } 
     74 } 
     75 @Override
     76 public void beforeTextChanged(CharSequence s, int start, int count, 
     77 int after) { 
     78 } 
     79 @Override
     80 public void afterTextChanged(Editable s) { 
     81 } 
     82 }); 
     83 bt_username_clear = (Button) findViewById(R.id.bt_username_clear); 
     84 bt_username_clear.setOnClickListener(this); 
     85 bt_pwd_clear = (Button) findViewById(R.id.bt_pwd_clear); 
     86 bt_pwd_clear.setOnClickListener(this); 
     87  
     88 bt_pwd_eye = (Button) findViewById(R.id.bt_pwd_eye); 
     89 bt_pwd_eye.setOnClickListener(this); 
     90 login = (Button) findViewById(R.id.login); 
     91 login.setOnClickListener(this); 
     92 egister = (Button) findViewById(R.id.register); 
     93 register.setOnClickListener(this); 
     94 forgive_pwd = (Button) findViewById(R.id.forgive_pwd); 
     95 forgive_pwd.setOnClickListener(this); 
     96 } 
     97 @Override
     98 public void onClick(View v) { 
     99 switch (v.getId()) { 
    100 case R.id.bt_username_clear: 
    101 // 清除登录名 
    102 username.setText(""); 
    103 break; 
    104 case R.id.bt_pwd_clear: 
    105 // 清除密码 
    106 password.setText(""); 
    107 break; 
    108 case R.id.bt_pwd_eye: 
    109 // 密码可见与不可见的切换 
    110 if (isOpen) { 
    111 isOpen = false; 
    112 } else { 
    113 isOpen = true; 
    114 } 
    115 // 默认isOpen是false,密码不可见 
    116 changePwdOpenOrClose(isOpen); 
    117 break; 
    118 case R.id.login: 
    119 // TODO 登录按钮 
    120 break; 
    121 case R.id.register: 
    122 // 注册按钮 
    123 Toast.makeText(MainActivity.this, "注册", 0).show(); 
    124 break; 
    125 case R.id.forgive_pwd: 
    126 // 忘记密码按钮 
    127 Toast.makeText(MainActivity.this, "忘记密码", 0).show(); 
    128 break; 
    129 default: 
    130 break; 
    131 } 
    132 } 
    133 /** 
    134 * 密码可见与不可见的切换 
    135 * 
    136 * @param flag 
    137 */
    138 private void changePwdOpenOrClose(boolean flag) { 
    139 // 第一次过来是false,密码不可见 
    140 if (flag) { 
    141 // 密码可见 
    142 bt_pwd_eye.setBackgroundResource(R.drawable.password_open); 
    143 // 设置EditText的密码可见 
    144 password.setTransformationMethod(HideReturnsTransformationMethod 
    145 .getInstance()); 
    146 } else { 
    147 // 密码不接见 
    148 bt_pwd_eye.setBackgroundResource(R.drawable.password_close); 
    149 // 设置EditText的密码隐藏 
    150 password.setTransformationMethod(PasswordTransformationMethod 
    151 .getInstance()); 
    152 } 
    153 } 
    154 }
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fitsSystemWindows="true" >
    <RelativeLayout
    android:id="@+id/login_layout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    android:layout_marginRight="20dp"
    android:gravity="center" >
    <FrameLayout
    android:id="@+id/username_layout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="55dp"
    android:gravity="center" >
    <!-- android:inputType="number" -->
    <EditText
    android:id="@+id/username"
    android:layout_width="fill_parent"
    android:layout_height="40dp"
    android:layout_marginTop="5dp"
    android:maxLength="20"
    android:paddingLeft="55dp"
    android:paddingRight="60dp" >
    </EditText>
    <ImageView
    android:layout_width="22dp"
    android:layout_height="21dp"
    android:layout_gravity="left|center_vertical"
    android:layout_marginStart="10dp"
    android:background="@drawable/username"
    android:visibility="visible" />
    <TextView
    android:id="@+id/contry_sn"
    android:layout_width="40dp"
    android:layout_height="50dp"
    android:layout_gravity="left|center_vertical"
    android:layout_marginTop="4dp"
    android:gravity="center"
    android:text="+62"
    android:textColor="@android:color/black"
    android:textSize="18sp"
    android:visibility="invisible" />
    <Button
    android:id="@+id/bt_username_clear"
    android:layout_width="35dp"
    android:layout_height="35dp"
    android:layout_gravity="right|center_vertical"
    android:layout_marginRight="10dp"
    android:background="@drawable/email_delete_pressed"
    android:visibility="invisible" />
    </FrameLayout>
    <FrameLayout
    android:id="@+id/usercode_layout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/username_layout"
    android:layout_marginTop="6dp"
    android:gravity="center" >
    <EditText
    android:id="@+id/password"
    android:layout_width="fill_parent"
    android:layout_height="40dp"
    android:inputType="textPassword"
    android:maxLength="20"
    android:paddingLeft="55dp"
    android:paddingRight="60dp" >
    </EditText>
    <ImageView
    android:layout_width="18dp"
    android:layout_height="21dp"
    android:layout_gravity="left|center_vertical"
    android:layout_marginStart="10dp"
    android:background="@drawable/password" />
    <Button
    android:id="@+id/bt_pwd_eye"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_gravity="right|center_vertical"
    android:layout_marginRight="10dp"
    android:background="@drawable/password_close" />
    <Button
    android:id="@+id/bt_pwd_clear"
    android:layout_width="35dp"
    android:layout_height="35dp"
    android:layout_gravity="right|center_vertical"
    android:layout_marginRight="45dp"
    android:background="@drawable/email_delete_pressed"
    android:visibility="invisible" />
    </FrameLayout>
    <Button
    android:id="@+id/login"
    android:layout_width="fill_parent"
    android:layout_height="40dp"
    android:layout_below="@id/usercode_layout"
    android:layout_marginTop="30dp"
    android:background="@drawable/login_selector"
    android:gravity="center"
    android:text="登录"
    android:textColor="@android:color/white" />
    <Button
    android:id="@+id/forgive_pwd"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignRight="@id/login"
    android:layout_below="@id/login"
    android:background="#00000000"
    android:text="忘记密码?"
    android:textColor="@drawable/text_color_selector"
    android:textSize="16sp" />
    <Button
    android:id="@+id/register"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@id/login"
    android:layout_below="@id/login"
    android:background="#00000000"
    android:gravity="left|center_vertical"
    android:text="注册"
    android:textColor="@drawable/text_color_selector"
    android:textSize="16sp"
    android:visibility="visible" />
    </RelativeLayout>
    </RelativeLayout>

    MainActivity如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    package com.example.logindemo;
    import android.support.v7.app.ActionBarActivity;
    import android.text.Editable;
    import android.text.TextWatcher;
    import android.text.method.HideReturnsTransformationMethod;
    import android.text.method.PasswordTransformationMethod;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    import android.os.Bundle;
    /**
    * 登录界面Demo
    *
    * @author ZHY
    *
    */
    public class MainActivity extends ActionBarActivity implements OnClickListener {
    private EditText username, password;
    private Button bt_username_clear;
    private Button bt_pwd_clear;
    private Button forgive_pwd;
    private Button bt_pwd_eye;
    private Button login;
    private Button register;
    private boolean isOpen = false;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initView();
    }
    private void initView() {
    username = (EditText) findViewById(R.id.username);
    // 监听文本框内容变化
    username.addTextChangedListener(new TextWatcher() {
    @Override
    public void onTextChanged(CharSequence s, int start, int before,
    int count) {
    // 获得文本框中的用户
    String user = username.getText().toString().trim();
    if ("".equals(user)) {
    // 用户名为空,设置按钮不可见
    bt_username_clear.setVisibility(View.INVISIBLE);
    } else {
    // 用户名不为空,设置按钮可见
    bt_username_clear.setVisibility(View.VISIBLE);
    }
    }
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count,
    int after) {
    }
    @Override
    public void afterTextChanged(Editable s) {
    }
    });
    password = (EditText) findViewById(R.id.password);
    // 监听文本框内容变化
    password.addTextChangedListener(new TextWatcher() {
    @Override
    public void onTextChanged(CharSequence s, int start, int before,
    int count) {
    // 获得文本框中的用户
    String pwd = password.getText().toString().trim();
    if ("".equals(pwd)) {
    // 用户名为空,设置按钮不可见
    bt_pwd_clear.setVisibility(View.INVISIBLE);
    } else {
    // 用户名不为空,设置按钮可见
    bt_pwd_clear.setVisibility(View.VISIBLE);
    }
    }
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count,
    int after) {
    }
    @Override
    public void afterTextChanged(Editable s) {
    }
    });
    bt_username_clear = (Button) findViewById(R.id.bt_username_clear);
    bt_username_clear.setOnClickListener(this);
    bt_pwd_clear = (Button) findViewById(R.id.bt_pwd_clear);
    bt_pwd_clear.setOnClickListener(this);
     
    bt_pwd_eye = (Button) findViewById(R.id.bt_pwd_eye);
    bt_pwd_eye.setOnClickListener(this);
    login = (Button) findViewById(R.id.login);
    login.setOnClickListener(this);
    egister = (Button) findViewById(R.id.register);
    register.setOnClickListener(this);
    forgive_pwd = (Button) findViewById(R.id.forgive_pwd);
    forgive_pwd.setOnClickListener(this);
    }
    @Override
    public void onClick(View v) {
    switch (v.getId()) {
    case R.id.bt_username_clear:
    // 清除登录名
    username.setText("");
    break;
    case R.id.bt_pwd_clear:
    // 清除密码
    password.setText("");
    break;
    case R.id.bt_pwd_eye:
    // 密码可见与不可见的切换
    if (isOpen) {
    isOpen = false;
    } else {
    isOpen = true;
    }
    // 默认isOpen是false,密码不可见
    changePwdOpenOrClose(isOpen);
    break;
    case R.id.login:
    // TODO 登录按钮
    break;
    case R.id.register:
    // 注册按钮
    Toast.makeText(MainActivity.this, "注册", 0).show();
    break;
    case R.id.forgive_pwd:
    // 忘记密码按钮
    Toast.makeText(MainActivity.this, "忘记密码", 0).show();
    break;
    default:
    break;
    }
    }
    /**
    * 密码可见与不可见的切换
    *
    * @param flag
    */
    private void changePwdOpenOrClose(boolean flag) {
    // 第一次过来是false,密码不可见
    if (flag) {
    // 密码可见
    bt_pwd_eye.setBackgroundResource(R.drawable.password_open);
    // 设置EditText的密码可见
    password.setTransformationMethod(HideReturnsTransformationMethod
    .getInstance());
    } else {
    // 密码不接见
    bt_pwd_eye.setBackgroundResource(R.drawable.password_close);
    // 设置EditText的密码隐藏
    password.setTransformationMethod(PasswordTransformationMethod
    .getInstance());
    }
    }
  • 相关阅读:
    后缀零
    vs2019 MFC的安装 解决 此项目需要 MFC 库。从 Visual Studio 安装程序(单个组件选项卡)为正在使用的任何工具集和体系结构安装它们。
    矩形切割
    fsync: failed to connect to feed.openvas.org (89.146.224.58)
    How to Install GVM Trial With VMware Workstation Player/Pro
    GVM 21.04 (stable, initial release 20210416)
    gitlab 升级相关
    Adobe Reader XI 11.0.23 简体中文版
    gofileserver GO HTTP 文件下载服务器
    KVM 中安装 Windows 10 虚拟机、CentOS 8 虚拟机及快照操作
  • 原文地址:https://www.cnblogs.com/ztca/p/8534065.html
Copyright © 2011-2022 走看看