实例10 简单的本地验证

【实例描述】

在本小节中介绍简单的登录界面——EditText编辑框的应用,在该界面中,若输入正确的用户名和密码,单击“确定”按钮,将出现一个Toast提示“恭喜您登录成功!”,否则将提示“请输入正确的用户名或密码!”。单击“清空”按钮,则会清空所填写的姓名和密码内容。

本实例的运行效果图,如图2-10所示。

提示:在该界面中,实现了对用户名和密码的验证功能,如图2-10所示。

【实现过程】

本程序的开发主要运用了EditText编辑框的相关知识。EditText编辑框中可以输入内容,当用户名和密码正确的时候,单击“确定”按钮就会弹出Toast提示“恭喜您登录成功!”,否则将提示“请输入正确的用户名或密码!”。单击“清空”按钮,则会清空所填写的姓名和密码

在本小节中通过对EdiText编辑框的应用,构建了一个简单的登录界面——EditText编辑框。并通过本程序的实现,来为读者介绍EditText编辑框的具体应用。内容。

在该界面开发中,还用到了TextView文本框控件、单行EditText控件与Button按钮控件。

图2-10 EditText编辑框

【代码解析】

首先为读者介绍本程序的主界面main.xml的开发,代码如下。

代码位置:见随书光盘中源代码/第2章/Sample2_10/ res/layout目录下的main.xml。

    1   <?xml version="1.0" encoding="utf-8"?>              <!--版本号和编码方式-->
    2   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    3      android:orientation="vertical"
    4      android:layout_width="fill_parent"
    5      android:layout_height="fill_parent"
    6      >                                                <!--LinearLayout-->
    7      <LinearLayout
    8           android:orientation="vertical"
    9           android:layout_width="fill_parent"
    10          android:layout_height="wrap_content"
    11          android:background="#ffcc66"
    12          android:paddingLeft="5dip"
    13          android:paddingRight="5dip"
    14          android:paddingTop="5dip">
    15          <LinearLayout
    16             android:id="@+id/LinearLayout01"
    17             android:orientation="horizontal"
    18             android:layout_width="fill_parent"
    19             android:layout_height="fill_parent">     <!--LinearLayout-->
    20             <TextView
    21                android:text="用户名:"
    22                android:id="@+id/TextView02"
    23                android:textColor="#222222"
    24                android:layout_width="wrap_content"
    25                android:layout_height="40dip"
    26                android:layout_marginLeft="5dip"
    27                android:textSize="18dip"
    28                android:gravity="center_vertical">
    29             </TextView>                              <!--TextView控件-->
    30               <EditText
    31                    android:id="@+id/EditTextuid"
    32                    android:singleLine="true"
    33                    android:layout_width="fill_parent"
    34                    android:layout_height="wrap_content"
    35                    android:layout_marginLeft="0dip"
    36                    android:text="e1001">              <!--设置文本-->
    37              </EditText>
    38          </LinearLayout>                             <!--LinearLayout-->
    39           <LinearLayout
    40               android:id="@+id/LinearLayout02"
    41               android:orientation="horizontal"
    42               android:layout_width="fill_parent"
    43               android:layout_height="wrap_content">  <!--纵向自适应大小-->
    44               <TextView
    45                    android:text="密   码:"
    46                    android:id="@+id/TextView03"
    47                    android:textColor="#222222"
    48                    android:layout_width="wrap_content"
    49                    android:layout_height="40dip"
    50                    android:layout_marginLeft="5dip"
    51                    android:textSize="18dip"
    52                    android:gravity="center_vertical"><!--设置位置-->
    53               </TextView>                            <!--TextView控件-->
    54               <EditText
    55                    android:id="@+id/EditTextPwd"
    56                    android:singleLine="true"
    57                    android:layout_width="fill_parent"
    58                    android:layout_height="wrap_content"
    59                   android:text="123456">             <!--设置文本-->
    60               </EditText>
    61           </LinearLayout>
    62           <LinearLayout
    63               android:id="@+id/LinearLayout03"
    64               android:orientation="horizontal"
    65               android:layout_width="wrap_content"
    66               android:layout_height="wrap_content">  <!--纵向自适应大小-->
    67               <Button
    68                    android:text=" 登录 "
    69                    android:id="@+id/loginLog"
    70                    android:layout_width="75dip"
    71                    android:layout_height="40dip"
    72                    android:textSize="18dip"
    73                    android:gravity="center">          <!--设置位置-->
    74               </Button>                              <!--Button控件-->
    75               <Button
    76                    android:text=" 清空 "
    77                    android:id="@+id/loginClear"
    78                    android:layout_width="75dip"
    79                    android:layout_height="40dip"
    80                    android:textSize="18dip"
    81                    android:gravity="center">          <!--设置位置-->
    82               </Button>                              <!--Button控件-->
    83           </LinearLayout>                            <!--LinearLayout-->
    84       </LinearLayout>                                 <!--LinearLayout-->
    85  </LinearLayout>                                     <!--LinearLayout-->

上面已经介绍了本程序的主界面main.xml的开发,接下来将要为读者介绍本程序的具体功能的实现,代码如下。

代码位置:见随书光盘中源代码/第2章/Sample2_10/src/com/bn/ex2j目录下的Sample2_10_Activity.class。

    1   package com.bn.ex2j;                                    //声明包
    2   ……//该处省略了部分类的导入,读者可自行查看随书光盘中的源代码
    3   import android.widget.Toast;                            //导入相关类
    4   public class Sample2_10_Activity extends Activity {     //继承自Activity类
    5      @Override
    6      public void onCreate(Bundle savedInstanceState){    //重写的方法
    7          super.onCreate(savedInstanceState);               //调用父类
    8          setContentView(R.layout.main);                    //跳转到主界面
    9          Button bLogin =(Button)this.findViewById(R.id.loginLog);//“登录”按钮
    10       Button bClear=(Button)this.findViewById(R.id.loginClear); //“清空”按钮
    11       final EditText eUid=(EditText)this.findViewById(R.id.EditTextuid);
                                                            //用户名
    12       final EditText eMima=(EditText)this.findViewById(R.id.EditTextPwd);//密码
    13       bLogin.setOnClickListener(                     //添加“登录”按钮监听器
    14            new OnClickListener(){                    //匿名内部类
    15               @Override
    16               public void onClick(View v){           //重写的方法
    17                    String strUid=eUid.getText().toString().trim();
                                                            //得到eUid的字符串
    18                    String strPwd=eMima.getText().toString().trim();
                                                            //得到eMima的字符串
    19                    if(strUid.equals("e1001")&&strPwd.equals("123456")){
                                                            //判断是否符合条件
    20                        Toast.makeText(Sample2_10_Activity.this, //弹出Toast
    21                            "恭喜您登录成功!",
    22                            Toast.LENGTH_SHORT).show();
    23                    }else{
    24                        Toast.makeText(Sample2_10_Activity.this, //弹出Toast
    25                            "请输入正确的用户名或密码!",
    26                            Toast.LENGTH_SHORT).show();
    27       }}});
    28       bClear.setOnClickListener(                     //添加“清空”按钮监听器
    29               new OnClickListener(){                 //匿名内部类
    30                    @Override
    31                    public void onClick(View v){      //重写的方法
    32                        eUid.setText("");             //设置用户名为空
    33                        eMima.setText("");            //设置密码为空
    34  }});}}

其中:

● 第14~27行表示单击“登录”按钮之后,判断其用户名和密码是否符合条件。

● 第28~34行表示单击“清空”按钮之后,将显示的用户名和密码全部清空。