1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Android用户登录注册界面

Android用户登录注册界面

时间:2020-12-21 17:25:00

相关推荐

Android用户登录注册界面

用户登录注册界面开发及用户信息管理案例详解

刚开始接触Android编程,这算是我写的第一个简单工程,主要功能有:用户登录、注册、注销、修改密码、记住密码共5个基本操作,其内容涉及到以下几点:

1:Button,TextView,TextEdit,ImageView,RatioButton等基本控件的使用;

2:多个Activities之间的切换;

3:使用Android本地数据库来管理用户信息。

实现上述功能的主要参考资料:CSDN博客之星郭霖大牛写的《第一行代码—Android》,个人比较喜欢看纸质的资料,所以买了这本书,大牛的博客主页链接/sinyu890807。其次是参考了网上的一个用户登录注册的程序,在此基础上按照自己的需求慢慢添加完善一些功能,并且将原来的单个avtivity换用多个activity实现,UI设计也更加漂亮美观。

先上几个图【我在android6.0.1的真机上调试的】:

下面是用户登录和用户注册界面。

下面是用户密码修改和个人中心界面。

一、工程代码

整个工程是在Android Studio 2.1.1环境下实现的,源码下载链接在末尾给出,下面是工程目录:

这里先贴出各个布局文件.xml,各个类内容和各个activity代码:

1:几个界面布局文件.xml

login.xml【登录界面】[java]view plain copy print ? <?xmlversion=“1.0”encoding=“utf-8”?><RelativeLayoutxmlns:android=”/apk/res/android”xmlns:tools=”/tools”android:layout_width=”match_parent”android:layout_height=”match_parent”android:paddingBottom=”@dimen/activity_vertical_margin”android:paddingLeft=”@dimen/activity_horizontal_margin”android:paddingRight=”@dimen/activity_horizontal_margin”android:paddingTop=”@dimen/activity_vertical_margin”tools:context=”com.example.foolishfan.user_v10.Login”><RelativeLayoutandroid:id=”@+id/login_view”android:layout_width=”400dp”android:layout_height=”800dp”android:layout_centerInParent=”true”><Buttonandroid:layout_width=”fill_parent”android:layout_height=”wrap_content”android:text=”注册”android:id=”@+id/login_btn_register”android:onClick=”resetpwd”android:textColor=”#ffffff”android:background=”#e52525”android:textSize=”20dp”android:layout_below=”@+id/login_btn_login”android:layout_alignParentLeft=”true”android:layout_alignParentStart=”true”android:layout_marginTop=”10dp”/><Buttonandroid:layout_width=”fill_parent”android:layout_height=”wrap_content”android:text=”登录”android:id=”@+id/login_btn_login”android:onClick=”finish_login”android:background=”#545bcb”android:textSize=”20dp”android:textColor=”#ffffff”android:layout_below=”@+id/login_edit_pwd”android:layout_alignParentLeft=”true”android:layout_alignParentStart=”true”android:layout_marginTop=”52dp”/><ImageViewandroid:layout_width=”300dp”android:layout_height=”150dp”android:id=”@+id/logo”android:layout_alignParentRight=”true”android:layout_alignParentEnd=”true”android:layout_alignParentLeft=”true”android:layout_alignParentStart=”true”android:layout_alignParentTop=”true”android:layout_alignWithParentIfMissing=”false”android:background=”#ffffff”/><EditTextandroid:layout_width=”400dp”android:layout_height=”60dp”android:inputType=”textPassword”android:ems=”10”android:id=”@+id/login_edit_pwd”android:drawableLeft=”@android:drawable/ic_lock_idle_lock”android:hint=”请输入您的密码”android:layout_below=”@+id/login_edit_account”android:layout_alignParentLeft=”true”android:layout_alignParentStart=”true”/><EditTextandroid:layout_width=”400dp”android:layout_height=”60dp”android:inputType=”textPersonName”android:id=”@+id/login_edit_account”android:drawableLeft=”@android:drawable/ic_menu_myplaces”android:hint=”请输入您的用户名”android:layout_below=”@+id/logo”android:layout_alignParentLeft=”true”android:layout_alignParentStart=”true”android:layout_marginTop=”20dp”/><Buttonandroid:layout_width=”fill_parent”android:layout_height=”wrap_content”android:text=”注销”android:id=”@+id/login_btn_cancle”android:textSize=”20dp”android:layout_below=”@+id/login_btn_register”android:layout_marginTop=”10dp”android:layout_alignParentRight=”true”android:layout_alignParentEnd=”true”android:layout_alignParentLeft=”true”android:layout_alignParentStart=”true”android:textColor=”#ffffff”android:background=”#3a1313”/><CheckBoxandroid:layout_width=”100dp”android:layout_height=”20dp”android:text=”记住密码”android:id=”@+id/Login_Remember”android:layout_below=”@+id/login_edit_pwd”android:layout_alignParentLeft=”true”android:layout_alignParentStart=”true”android:checked=”false”android:textSize=”15dp”/><TextViewandroid:layout_width=”60dp”android:layout_height=”20dp”android:text=”修改密码”android:id=”@+id/login_text_change_pwd”android:layout_below=”@+id/login_edit_pwd”android:layout_alignParentRight=”true”android:layout_alignParentEnd=”true”android:textSize=”15dp”/></RelativeLayout><RelativeLayoutandroid:id=”@+id/login_success_view”android:layout_width=”fill_parent”android:layout_height=”wrap_content”android:layout_centerInParent=”true”android:layout_marginLeft=”15.0px”android:layout_marginRight=”15.0px”android:layout_marginTop=”62.0px”android:background=”#ff3f3f3f”android:paddingBottom=”10.0px”android:paddingTop=”21.0px”android:visibility=”gone”><TextViewandroid:id=”@+id/login_success_show”android:layout_width=”wrap_content”android:layout_height=”wrap_content”android:layout_centerInParent=”true”android:textColor=”#ff3f3f3f”android:textSize=”20.0dip”/></RelativeLayout></RelativeLayout>

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.example.foolishfan.user_v10.Login"><RelativeLayoutandroid:id="@+id/login_view"android:layout_width="400dp"android:layout_height="800dp"android:layout_centerInParent="true"><Buttonandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="注册"android:id="@+id/login_btn_register"android:onClick="resetpwd"android:textColor="#ffffff"android:background="#e52525"android:textSize="20dp"android:layout_below="@+id/login_btn_login"android:layout_alignParentLeft="true"android:layout_alignParentStart="true"android:layout_marginTop="10dp" /><Buttonandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="登录"android:id="@+id/login_btn_login"android:onClick="finish_login"android:background="#545bcb"android:textSize="20dp"android:textColor="#ffffff"android:layout_below="@+id/login_edit_pwd"android:layout_alignParentLeft="true"android:layout_alignParentStart="true"android:layout_marginTop="52dp" /><ImageViewandroid:layout_width="300dp"android:layout_height="150dp"android:id="@+id/logo"android:layout_alignParentRight="true"android:layout_alignParentEnd="true"android:layout_alignParentLeft="true"android:layout_alignParentStart="true"android:layout_alignParentTop="true"android:layout_alignWithParentIfMissing="false"android:background="#ffffff" /><EditTextandroid:layout_width="400dp"android:layout_height="60dp"android:inputType="textPassword"android:ems="10"android:id="@+id/login_edit_pwd"android:drawableLeft="@android:drawable/ic_lock_idle_lock"android:hint="请输入您的密码"android:layout_below="@+id/login_edit_account"android:layout_alignParentLeft="true"android:layout_alignParentStart="true" /><EditTextandroid:layout_width="400dp"android:layout_height="60dp"android:inputType="textPersonName"android:id="@+id/login_edit_account"android:drawableLeft="@android:drawable/ic_menu_myplaces"android:hint="请输入您的用户名"android:layout_below="@+id/logo"android:layout_alignParentLeft="true"android:layout_alignParentStart="true"android:layout_marginTop="20dp" /><Buttonandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="注销"android:id="@+id/login_btn_cancle"android:textSize="20dp"android:layout_below="@+id/login_btn_register"android:layout_marginTop="10dp"android:layout_alignParentRight="true"android:layout_alignParentEnd="true"android:layout_alignParentLeft="true"android:layout_alignParentStart="true"android:textColor="#ffffff"android:background="#3a1313" /><CheckBoxandroid:layout_width="100dp"android:layout_height="20dp"android:text="记住密码"android:id="@+id/Login_Remember"android:layout_below="@+id/login_edit_pwd"android:layout_alignParentLeft="true"android:layout_alignParentStart="true"android:checked="false"android:textSize="15dp" /><TextViewandroid:layout_width="60dp"android:layout_height="20dp"android:text="修改密码"android:id="@+id/login_text_change_pwd"android:layout_below="@+id/login_edit_pwd"android:layout_alignParentRight="true"android:layout_alignParentEnd="true"android:textSize="15dp" /></RelativeLayout><RelativeLayoutandroid:id="@+id/login_success_view"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_centerInParent="true"android:layout_marginLeft="15.0px"android:layout_marginRight="15.0px"android:layout_marginTop="62.0px"android:background="#ff3f3f3f"android:paddingBottom="10.0px"android:paddingTop="21.0px"android:visibility="gone" ><TextViewandroid:id="@+id/login_success_show"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:textColor="#ff3f3f3f"android:textSize="20.0dip" /></RelativeLayout></RelativeLayout>

register.xml【注册界面】[java]view plain copy print ? <?xmlversion=“1.0”encoding=“utf-8”?><RelativeLayoutxmlns:android=”/apk/res/android”android:layout_width=”match_parent”android:layout_height=”match_parent”android:paddingBottom=”@dimen/activity_vertical_margin”android:paddingLeft=”@dimen/activity_horizontal_margin”android:paddingRight=”@dimen/activity_horizontal_margin”android:paddingTop=”@dimen/activity_vertical_margin”android:weightSum=”1”><EditTextandroid:drawableLeft=”@android:drawable/ic_menu_myplaces”android:layout_width=”wrap_content”android:layout_height=”60dp”android:inputType=”textPersonName”android:ems=”10”android:id=”@+id/resetpwd_edit_name”android:layout_alignParentTop=”true”android:hint=”请输入您的用户名”android:layout_alignLeft=”@+id/resetpwd_edit_pwd_new”android:layout_alignStart=”@+id/resetpwd_edit_pwd_new”android:layout_alignRight=”@+id/resetpwd_edit_pwd_new”android:layout_alignEnd=”@+id/resetpwd_edit_pwd_new”/><!–<EditTextandroid:id=”@+id/edt_operator_name”style=“@style/syncEditText”android:hint=”@string/hint_operator_name”/><ImageViewandroid:id=”@+id/syncOperatorImg”style=“@style/syncImageView”android:layout_alignLeft=”@+id/edt_operator_name”android:layout_alignTop=”@+id/edt_operator_name”android:layout_alignBottom=”@+id/edt_operator_name”android:src=“@drawable/sync_operator”/>–><EditTextandroid:drawableLeft=”@android:drawable/ic_lock_idle_lock”android:layout_width=”fill_parent”android:layout_height=”60dp”android:inputType=”textPassword”android:ems=”10”android:id=”@+id/resetpwd_edit_pwd_old”android:hint=”请输入您的密码”android:layout_below=”@+id/resetpwd_edit_name”android:layout_alignRight=”@+id/resetpwd_edit_name”android:layout_alignEnd=”@+id/resetpwd_edit_name”android:layout_alignLeft=”@+id/resetpwd_edit_name”android:layout_alignStart=”@+id/resetpwd_edit_name”/><Buttonandroid:layout_width=”fill_parent”android:layout_height=”wrap_content”android:text=”取消”android:id=”@+id/register_btn_cancel”android:textSize=”20dp”android:background=”#f71818”android:layout_below=”@+id/register_btn_sure”android:layout_alignLeft=”@+id/register_btn_sure”android:layout_alignStart=”@+id/register_btn_sure”android:layout_marginTop=”10dp”/><EditTextandroid:drawableLeft=”@android:drawable/ic_lock_idle_lock”android:layout_width=”fill_parent”android:layout_height=”60dp”android:inputType=”textPassword”android:ems=”10”android:id=”@+id/resetpwd_edit_pwd_new”android:layout_below=”@+id/resetpwd_edit_pwd_old”android:layout_centerHorizontal=”true”android:hint=”请确认您的密码”/><Buttonandroid:layout_width=”fill_parent”android:layout_height=”wrap_content”android:text=”确定”android:id=”@+id/register_btn_sure”android:textSize=”20dp”android:background=”#1cf718”android:layout_below=”@+id/resetpwd_edit_pwd_new”android:layout_alignLeft=”@+id/resetpwd_edit_pwd_new”android:layout_alignStart=”@+id/resetpwd_edit_pwd_new”android:layout_marginTop=”20dp”/></RelativeLayout>

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"android:weightSum="1"><EditTextandroid:drawableLeft="@android:drawable/ic_menu_myplaces"android:layout_width="wrap_content"android:layout_height="60dp"android:inputType="textPersonName"android:ems="10"android:id="@+id/resetpwd_edit_name"android:layout_alignParentTop="true"android:hint="请输入您的用户名"android:layout_alignLeft="@+id/resetpwd_edit_pwd_new"android:layout_alignStart="@+id/resetpwd_edit_pwd_new"android:layout_alignRight="@+id/resetpwd_edit_pwd_new"android:layout_alignEnd="@+id/resetpwd_edit_pwd_new" /><!--<EditText android:id="@+id/edt_operator_name" style="@style/syncEditText"android:hint="@string/hint_operator_name" /><ImageView android:id="@+id/syncOperatorImg" style="@style/syncImageView"android:layout_alignLeft="@+id/edt_operator_name"android:layout_alignTop="@+id/edt_operator_name"android:layout_alignBottom="@+id/edt_operator_name" android:src="@drawable/sync_operator" />--><EditTextandroid:drawableLeft="@android:drawable/ic_lock_idle_lock"android:layout_width="fill_parent"android:layout_height="60dp"android:inputType="textPassword"android:ems="10"android:id="@+id/resetpwd_edit_pwd_old"android:hint="请输入您的密码"android:layout_below="@+id/resetpwd_edit_name"android:layout_alignRight="@+id/resetpwd_edit_name"android:layout_alignEnd="@+id/resetpwd_edit_name"android:layout_alignLeft="@+id/resetpwd_edit_name"android:layout_alignStart="@+id/resetpwd_edit_name" /><Buttonandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="取消"android:id="@+id/register_btn_cancel"android:textSize="20dp"android:background="#f71818"android:layout_below="@+id/register_btn_sure"android:layout_alignLeft="@+id/register_btn_sure"android:layout_alignStart="@+id/register_btn_sure"android:layout_marginTop="10dp" /><EditTextandroid:drawableLeft="@android:drawable/ic_lock_idle_lock"android:layout_width="fill_parent"android:layout_height="60dp"android:inputType="textPassword"android:ems="10"android:id="@+id/resetpwd_edit_pwd_new"android:layout_below="@+id/resetpwd_edit_pwd_old"android:layout_centerHorizontal="true"android:hint="请确认您的密码" /><Buttonandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="确定"android:id="@+id/register_btn_sure"android:textSize="20dp"android:background="#1cf718"android:layout_below="@+id/resetpwd_edit_pwd_new"android:layout_alignLeft="@+id/resetpwd_edit_pwd_new"android:layout_alignStart="@+id/resetpwd_edit_pwd_new"android:layout_marginTop="20dp" /></RelativeLayout>

resetpwd.xml【修改密码界面】[java]view plain copy print ? <?xmlversion=“1.0”encoding=“utf-8”?><RelativeLayoutxmlns:android=”/apk/res/android”android:layout_width=”match_parent”android:layout_height=”match_parent”android:paddingBottom=”@dimen/activity_vertical_margin”android:paddingLeft=”@dimen/activity_horizontal_margin”android:paddingRight=”@dimen/activity_horizontal_margin”android:paddingTop=”@dimen/activity_vertical_margin”android:weightSum=”1”><EditTextandroid:drawableLeft=”@android:drawable/ic_menu_myplaces”android:layout_width=”wrap_content”android:layout_height=”60dp”android:inputType=”textPersonName”android:ems=”10”android:id=”@+id/resetpwd_edit_name”android:layout_alignParentTop=”true”android:hint=”请输入您的用户名”android:layout_alignLeft=”@+id/resetpwd_edit_pwd_new”android:layout_alignStart=”@+id/resetpwd_edit_pwd_new”android:layout_alignRight=”@+id/resetpwd_edit_pwd_new”android:layout_alignEnd=”@+id/resetpwd_edit_pwd_new”/><!–<EditTextandroid:id=”@+id/edt_operator_name”style=“@style/syncEditText”android:hint=”@string/hint_operator_name”/><ImageViewandroid:id=”@+id/syncOperatorImg”style=“@style/syncImageView”android:layout_alignLeft=”@+id/edt_operator_name”android:layout_alignTop=”@+id/edt_operator_name”android:layout_alignBottom=”@+id/edt_operator_name”android:src=“@drawable/sync_operator”/>–><EditTextandroid:drawableLeft=”@android:drawable/ic_lock_idle_lock”android:layout_width=”fill_parent”android:layout_height=”60dp”android:inputType=”textPassword”android:ems=”10”android:id=”@+id/resetpwd_edit_pwd_old”android:hint=”请输入您的旧密码”android:layout_below=”@+id/resetpwd_edit_name”android:layout_alignRight=”@+id/resetpwd_edit_name”android:layout_alignEnd=”@+id/resetpwd_edit_name”android:layout_alignLeft=”@+id/resetpwd_edit_name”android:layout_alignStart=”@+id/resetpwd_edit_name”/><Buttonandroid:layout_width=”fill_parent”android:layout_height=”wrap_content”android:text=”取消”android:id=”@+id/resetpwd_btn_cancel”android:textSize=”20dp”android:onClick=”not_to_reset”android:background=”#f71818”android:layout_below=”@+id/resetpwd_btn_sure”android:layout_alignParentLeft=”true”android:layout_alignParentStart=”true”android:layout_marginTop=”20dp”/><EditTextandroid:drawableLeft=”@android:drawable/ic_lock_idle_lock”android:layout_width=”fill_parent”android:layout_height=”60dp”android:inputType=”textPassword”android:ems=”10”android:id=”@+id/resetpwd_edit_pwd_new”android:layout_below=”@+id/resetpwd_edit_pwd_old”android:layout_centerHorizontal=”true”android:hint=”请确认您的新密码”/><Buttonandroid:layout_width=”fill_parent”android:layout_height=”wrap_content”android:text=”确定”android:id=”@+id/resetpwd_btn_sure”android:textSize=”20dp”android:onClick=”sure_to_reset”android:background=”#1cf718”android:layout_marginTop=”92dp”android:layout_below=”@+id/resetpwd_edit_pwd_new”android:layout_alignParentLeft=”true”android:layout_alignParentStart=”true”/><EditTextandroid:drawableLeft=”@android:drawable/ic_lock_idle_lock”android:layout_width=”fill_parent”android:layout_height=”60dp”android:inputType=”textPassword”android:ems=”10”android:id=”@+id/resetpwd_edit_pwd_check”android:hint=”请输入您的新密码”android:layout_below=”@+id/resetpwd_edit_pwd_new”android:layout_alignParentLeft=”true”android:layout_alignParentStart=”true”/></RelativeLayout>

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"android:weightSum="1"><EditTextandroid:drawableLeft="@android:drawable/ic_menu_myplaces"android:layout_width="wrap_content"android:layout_height="60dp"android:inputType="textPersonName"android:ems="10"android:id="@+id/resetpwd_edit_name"android:layout_alignParentTop="true"android:hint="请输入您的用户名"android:layout_alignLeft="@+id/resetpwd_edit_pwd_new"android:layout_alignStart="@+id/resetpwd_edit_pwd_new"android:layout_alignRight="@+id/resetpwd_edit_pwd_new"android:layout_alignEnd="@+id/resetpwd_edit_pwd_new" /><!--<EditText android:id="@+id/edt_operator_name" style="@style/syncEditText"android:hint="@string/hint_operator_name" /><ImageView android:id="@+id/syncOperatorImg" style="@style/syncImageView"android:layout_alignLeft="@+id/edt_operator_name"android:layout_alignTop="@+id/edt_operator_name"android:layout_alignBottom="@+id/edt_operator_name" android:src="@drawable/sync_operator" />--><EditTextandroid:drawableLeft="@android:drawable/ic_lock_idle_lock"android:layout_width="fill_parent"android:layout_height="60dp"android:inputType="textPassword"android:ems="10"android:id="@+id/resetpwd_edit_pwd_old"android:hint="请输入您的旧密码"android:layout_below="@+id/resetpwd_edit_name"android:layout_alignRight="@+id/resetpwd_edit_name"android:layout_alignEnd="@+id/resetpwd_edit_name"android:layout_alignLeft="@+id/resetpwd_edit_name"android:layout_alignStart="@+id/resetpwd_edit_name" /><Buttonandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="取消"android:id="@+id/resetpwd_btn_cancel"android:textSize="20dp"android:onClick="not_to_reset"android:background="#f71818"android:layout_below="@+id/resetpwd_btn_sure"android:layout_alignParentLeft="true"android:layout_alignParentStart="true"android:layout_marginTop="20dp" /><EditTextandroid:drawableLeft="@android:drawable/ic_lock_idle_lock"android:layout_width="fill_parent"android:layout_height="60dp"android:inputType="textPassword"android:ems="10"android:id="@+id/resetpwd_edit_pwd_new"android:layout_below="@+id/resetpwd_edit_pwd_old"android:layout_centerHorizontal="true"android:hint="请确认您的新密码"/><Buttonandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="确定"android:id="@+id/resetpwd_btn_sure"android:textSize="20dp"android:onClick="sure_to_reset"android:background="#1cf718"android:layout_marginTop="92dp"android:layout_below="@+id/resetpwd_edit_pwd_new"android:layout_alignParentLeft="true"android:layout_alignParentStart="true" /><EditTextandroid:drawableLeft="@android:drawable/ic_lock_idle_lock"android:layout_width="fill_parent"android:layout_height="60dp"android:inputType="textPassword"android:ems="10"android:id="@+id/resetpwd_edit_pwd_check"android:hint="请输入您的新密码"android:layout_below="@+id/resetpwd_edit_pwd_new"android:layout_alignParentLeft="true"android:layout_alignParentStart="true" /></RelativeLayout>

user.xml【个人中心】

[java]view plain copy print ? <?xmlversion=“1.0”encoding=“utf-8”?><RelativeLayoutxmlns:android=”/apk/res/android”android:layout_width=”match_parent”android:layout_height=”match_parent”android:paddingBottom=”@dimen/activity_vertical_margin”android:paddingLeft=”@dimen/activity_horizontal_margin”android:paddingRight=”@dimen/activity_horizontal_margin”android:paddingTop=”@dimen/activity_vertical_margin”><TextViewandroid:layout_width=”wrap_content”android:layout_height=”wrap_content”android:textAppearance=”?android:attr/textAppearanceLarge”android:text=”FooilshFan您好,欢迎回来!”android:id=”@+id/textView”android:layout_centerHorizontal=”true”android:layout_marginLeft=”50dp”android:layout_marginTop=”6dp”android:textSize=”16dp”/><Buttonandroid:layout_width=”wrap_content”android:layout_height=”wrap_content”android:text=”退出”android:id=”@+id/returnback”android:layout_below=”@+id/textView”android:layout_marginTop=”36dp”android:onClick=”back_to_login”android:textColor=”#ffffff”android:textSize=”20dp”android:background=”#d95b5b”android:layout_alignParentLeft=”true”android:layout_alignParentStart=”true”android:layout_alignParentRight=”true”android:layout_alignParentEnd=”true”/></RelativeLayout>

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:textAppearance="?android:attr/textAppearanceLarge"android:text="FooilshFan您好,欢迎回来!"android:id="@+id/textView"android:layout_centerHorizontal="true"android:layout_marginLeft="50dp"android:layout_marginTop="6dp"android:textSize="16dp" /><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="退出"android:id="@+id/returnback"android:layout_below="@+id/textView"android:layout_marginTop="36dp"android:onClick="back_to_login"android:textColor="#ffffff"android:textSize="20dp"android:background="#d95b5b"android:layout_alignParentLeft="true"android:layout_alignParentStart="true"android:layout_alignParentRight="true"android:layout_alignParentEnd="true" /></RelativeLayout>

2:用户数据管理的类

UserData.java 【用户数据】 [java]view plain copy print ? packagecom.example.foolishfan.user_v10;publicclassUserData{privateStringuserName;//用户名privateStringuserPwd;//用户密码privateintuserId;//用户ID号publicintpwdresetFlag=0;//获取用户名publicStringgetUserName(){//获取用户名returnuserName;}//设置用户名publicvoidsetUserName(StringuserName){//输入用户名this.userName=userName;}//获取用户密码publicStringgetUserPwd(){//获取用户密码returnuserPwd;}//设置用户密码publicvoidsetUserPwd(StringuserPwd){//输入用户密码this.userPwd=userPwd;}//获取用户idpublicintgetUserId(){//获取用户ID号returnuserId;}//设置用户idpublicvoidsetUserId(intuserId){//设置用户ID号this.userId=userId;}publicUserData(StringuserName,StringuserPwd){//这里只采用用户名和密码super();this.userName=userName;this.userPwd=userPwd;}}

package com.example.foolishfan.user_v10;public class UserData {private String userName; //用户名private String userPwd; //用户密码private int userId; //用户ID号public int pwdresetFlag=0;//获取用户名public String getUserName() { //获取用户名return userName;}//设置用户名public void setUserName(String userName) { //输入用户名this.userName = userName;}//获取用户密码public String getUserPwd() {//获取用户密码return userPwd;}//设置用户密码public void setUserPwd(String userPwd) {//输入用户密码this.userPwd = userPwd;}//获取用户idpublic int getUserId() { //获取用户ID号return userId;}//设置用户idpublic void setUserId(int userId) { //设置用户ID号this.userId = userId;}public UserData(String userName, String userPwd) { //这里只采用用户名和密码super();this.userName = userName;this.userPwd = userPwd;}}

UserDataManager.java【用户管理】[java]view plain copy print ? packagecom.example.foolishfan.user_v10;importandroid.content.ContentValues;importandroid.content.Context;importandroid.database.Cursor;importandroid.database.SQLException;importandroid.database.sqlite.SQLiteDatabase;importandroid.database.sqlite.SQLiteOpenHelper;importandroid.util.Log;publicclassUserDataManager{//用户数据管理类//一些宏定义和声明privatestaticfinalStringTAG=“UserDataManager”;privatestaticfinalStringDB_NAME=“user_data”;privatestaticfinalStringTABLE_NAME=“users”;publicstaticfinalStringID=“_id”;publicstaticfinalStringUSER_NAME=“user_name”;publicstaticfinalStringUSER_PWD=“user_pwd”;//publicstaticfinalStringSILENT=“silent”;//publicstaticfinalStringVIBRATE=“vibrate”;privatestaticfinalintDB_VERSION=2;privateContextmContext=null;//创建用户book表privatestaticfinalStringDB_CREATE=“CREATETABLE”+TABLE_NAME+“(“+ID+”integerprimarykey,”+USER_NAME+“varchar,”+USER_PWD+”varchar”+“);”;privateSQLiteDatabasemSQLiteDatabase=null;privateDataBaseManagementHelpermDatabaseHelper=null;//DataBaseManagementHelper继承自SQLiteOpenHelperprivatestaticclassDataBaseManagementHelperextendsSQLiteOpenHelper{DataBaseManagementHelper(Contextcontext){super(context,DB_NAME,null,DB_VERSION);}@OverridepublicvoidonCreate(SQLiteDatabasedb){Log.i(TAG,”db.getVersion()=”+db.getVersion());db.execSQL(”DROPTABLEIFEXISTS”+TABLE_NAME+“;”);db.execSQL(DB_CREATE);Log.i(TAG,”db.execSQL(DB_CREATE)”);Log.e(TAG,DB_CREATE);}@OverridepublicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){Log.i(TAG,”DataBaseManagementHelperonUpgrade”);onCreate(db);}}publicUserDataManager(Contextcontext){mContext=context;Log.i(TAG,”UserDataManagerconstruction!”);}//打开数据库publicvoidopenDataBase()throwsSQLException{mDatabaseHelper=newDataBaseManagementHelper(mContext);mSQLiteDatabase=mDatabaseHelper.getWritableDatabase();}//关闭数据库publicvoidcloseDataBase()throwsSQLException{mDatabaseHelper.close();}//添加新用户,即注册publiclonginsertUserData(UserDatauserData){StringuserName=userData.getUserName();StringuserPwd=userData.getUserPwd();ContentValuesvalues=newContentValues();values.put(USER_NAME,userName);values.put(USER_PWD,userPwd);returnmSQLiteDatabase.insert(TABLE_NAME,ID,values);}//更新用户信息,如修改密码publicbooleanupdateUserData(UserDatauserData){//intid=userData.getUserId();StringuserName=userData.getUserName();StringuserPwd=userData.getUserPwd();ContentValuesvalues=newContentValues();values.put(USER_NAME,userName);values.put(USER_PWD,userPwd);returnmSQLiteDatabase.update(TABLE_NAME,values,null,null)>0;//returnmSQLiteDatabase.update(TABLE_NAME,values,ID+”=”+id,null)>0;}//publicCursorfetchUserData(intid)throwsSQLException{CursormCursor=mSQLiteDatabase.query(false,TABLE_NAME,null,ID+”=”+id,null,null,null,null,null);if(mCursor!=null){mCursor.moveToFirst();}returnmCursor;}//publicCursorfetchAllUserDatas(){returnmSQLiteDatabase.query(TABLE_NAME,null,null,null,null,null,null);}//根据id删除用户publicbooleandeleteUserData(intid){returnmSQLiteDatabase.delete(TABLE_NAME,ID+“=”+id,null)>0;}//根据用户名注销publicbooleandeleteUserDatabyname(Stringname){returnmSQLiteDatabase.delete(TABLE_NAME,USER_NAME+“=”+name,null)>0;}//删除所有用户publicbooleandeleteAllUserDatas(){returnmSQLiteDatabase.delete(TABLE_NAME,null,null)>0;}//publicStringgetStringByColumnName(StringcolumnName,intid){CursormCursor=fetchUserData(id);intcolumnIndex=mCursor.getColumnIndex(columnName);StringcolumnValue=mCursor.getString(columnIndex);mCursor.close();returncolumnValue;}//publicbooleanupdateUserDataById(StringcolumnName,intid,StringcolumnValue){ContentValuesvalues=newContentValues();values.put(columnName,columnValue);returnmSQLiteDatabase.update(TABLE_NAME,values,ID+“=”+id,null)>0;}//根据用户名找用户,可以判断注册时用户名是否已经存在publicintfindUserByName(StringuserName){Log.i(TAG,”findUserByName,userName=”+userName);intresult=0;CursormCursor=mSQLiteDatabase.query(TABLE_NAME,null,USER_NAME+“=”+userName,null,null,null,null);if(mCursor!=null){result=mCursor.getCount();mCursor.close();Log.i(TAG,”findUserByName,result=”+result);}returnresult;}//根据用户名和密码找用户,用于登录publicintfindUserByNameAndPwd(StringuserName,Stringpwd){Log.i(TAG,”findUserByNameAndPwd”);intresult=0;CursormCursor=mSQLiteDatabase.query(TABLE_NAME,null,USER_NAME+“=”+userName+“and”+USER_PWD+“=”+pwd,null,null,null,null);if(mCursor!=null){result=mCursor.getCount();mCursor.close();Log.i(TAG,”findUserByNameAndPwd,result=”+result);}returnresult;}}

package com.example.foolishfan.user_v10;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.SQLException;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.util.Log;public class UserDataManager { //用户数据管理类//一些宏定义和声明private static final String TAG = "UserDataManager";private static final String DB_NAME = "user_data";private static final String TABLE_NAME = "users";public static final String ID = "_id";public static final String USER_NAME = "user_name";public static final String USER_PWD = "user_pwd";// public static final String SILENT = "silent";// public static final String VIBRATE = "vibrate";private static final int DB_VERSION = 2;private Context mContext = null;//创建用户book表private static final String DB_CREATE = "CREATE TABLE " + TABLE_NAME + " ("+ ID + " integer primary key," + USER_NAME + " varchar,"+ USER_PWD + " varchar" + ");";private SQLiteDatabase mSQLiteDatabase = null;private DataBaseManagementHelper mDatabaseHelper = null;//DataBaseManagementHelper继承自SQLiteOpenHelperprivate static class DataBaseManagementHelper extends SQLiteOpenHelper {DataBaseManagementHelper(Context context) {super(context, DB_NAME, null, DB_VERSION);}@Overridepublic void onCreate(SQLiteDatabase db) {Log.i(TAG,"db.getVersion()="+db.getVersion());db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME + ";");db.execSQL(DB_CREATE);Log.i(TAG, "db.execSQL(DB_CREATE)");Log.e(TAG, DB_CREATE);}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {Log.i(TAG, "DataBaseManagementHelper onUpgrade");onCreate(db);}}public UserDataManager(Context context) {mContext = context;Log.i(TAG, "UserDataManager construction!");}//打开数据库public void openDataBase() throws SQLException {mDatabaseHelper = new DataBaseManagementHelper(mContext);mSQLiteDatabase = mDatabaseHelper.getWritableDatabase();}//关闭数据库public void closeDataBase() throws SQLException {mDatabaseHelper.close();}//添加新用户,即注册public long insertUserData(UserData userData) {String userName=userData.getUserName();String userPwd=userData.getUserPwd();ContentValues values = new ContentValues();values.put(USER_NAME, userName);values.put(USER_PWD, userPwd);return mSQLiteDatabase.insert(TABLE_NAME, ID, values);}//更新用户信息,如修改密码public boolean updateUserData(UserData userData) {//int id = userData.getUserId();String userName = userData.getUserName();String userPwd = userData.getUserPwd();ContentValues values = new ContentValues();values.put(USER_NAME, userName);values.put(USER_PWD, userPwd);return mSQLiteDatabase.update(TABLE_NAME, values,null, null) > 0;//return mSQLiteDatabase.update(TABLE_NAME, values, ID + "=" + id, null) > 0;}//public Cursor fetchUserData(int id) throws SQLException {Cursor mCursor = mSQLiteDatabase.query(false, TABLE_NAME, null, ID+ "=" + id, null, null, null, null, null);if (mCursor != null) {mCursor.moveToFirst();}return mCursor;}//public Cursor fetchAllUserDatas() {return mSQLiteDatabase.query(TABLE_NAME, null, null, null, null, null,null);}//根据id删除用户public boolean deleteUserData(int id) {return mSQLiteDatabase.delete(TABLE_NAME, ID + "=" + id, null) > 0;}//根据用户名注销public boolean deleteUserDatabyname(String name) {return mSQLiteDatabase.delete(TABLE_NAME, USER_NAME + "=" + name, null) > 0;}//删除所有用户public boolean deleteAllUserDatas() {return mSQLiteDatabase.delete(TABLE_NAME, null, null) > 0;}//public String getStringByColumnName(String columnName, int id) {Cursor mCursor = fetchUserData(id);int columnIndex = mCursor.getColumnIndex(columnName);String columnValue = mCursor.getString(columnIndex);mCursor.close();return columnValue;}//public boolean updateUserDataById(String columnName, int id,String columnValue) {ContentValues values = new ContentValues();values.put(columnName, columnValue);return mSQLiteDatabase.update(TABLE_NAME, values, ID + "=" + id, null) > 0;}//根据用户名找用户,可以判断注册时用户名是否已经存在public int findUserByName(String userName){Log.i(TAG,"findUserByName , userName="+userName);int result=0;Cursor mCursor=mSQLiteDatabase.query(TABLE_NAME, null, USER_NAME+"="+userName, null, null, null, null);if(mCursor!=null){result=mCursor.getCount();mCursor.close();Log.i(TAG,"findUserByName , result="+result);}return result;}//根据用户名和密码找用户,用于登录public int findUserByNameAndPwd(String userName,String pwd){Log.i(TAG,"findUserByNameAndPwd");int result=0;Cursor mCursor=mSQLiteDatabase.query(TABLE_NAME, null, USER_NAME+"="+userName+" and "+USER_PWD+"="+pwd,null, null, null, null);if(mCursor!=null){result=mCursor.getCount();mCursor.close();Log.i(TAG,"findUserByNameAndPwd , result="+result);}return result;}}

3:具体操作的实现代码,即各个activity

Login.java【用户登录activity】

[java]view plain copy print ? packagecom.example.foolishfan.user_v10;importandroid.app.Activity;importandroid.content.Intent;importandroid.content.SharedPreferences;importandroid.os.Bundle;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.CheckBox;importandroid.widget.EditText;importandroid.widget.ImageView;importandroid.widget.TextView;importandroid.widget.Toast;publicclassLoginextendsActivity{//登录界面活动publicintpwdresetFlag=0;privateEditTextmAccount;//用户名编辑privateEditTextmPwd;//密码编辑privateButtonmRegisterButton;//注册按钮privateButtonmLoginButton;//登录按钮privateButtonmCancleButton;//注销按钮privateCheckBoxmRememberCheck;privateSharedPreferenceslogin_sp;privateStringuserNameValue,passwordValue;privateViewloginView;//登录privateViewloginSuccessView;privateTextViewloginSuccessShow;privateTextViewmChangepwdText;privateUserDataManagermUserDataManager;//用户数据管理类@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.login);//通过id找到相应的控件mAccount=(EditText)findViewById(R.id.login_edit_account);mPwd=(EditText)findViewById(R.id.login_edit_pwd);mRegisterButton=(Button)findViewById(R.id.login_btn_register);mLoginButton=(Button)findViewById(R.id.login_btn_login);mCancleButton=(Button)findViewById(R.id.login_btn_cancle);loginView=findViewById(R.id.login_view);loginSuccessView=findViewById(R.id.login_success_view);loginSuccessShow=(TextView)findViewById(R.id.login_success_show);mChangepwdText=(TextView)findViewById(R.id.login_text_change_pwd);mRememberCheck=(CheckBox)findViewById(R.id.Login_Remember);login_sp=getSharedPreferences(”userInfo”,0);Stringname=login_sp.getString(”USER_NAME”,“”);Stringpwd=login_sp.getString(”PASSWORD”,“”);booleanchoseRemember=login_sp.getBoolean(“mRememberCheck”,false);booleanchoseAutoLogin=login_sp.getBoolean(“mAutologinCheck”,false);//如果上次选了记住密码,那进入登录页面也自动勾选记住密码,并填上用户名和密码if(choseRemember){mAccount.setText(name);mPwd.setText(pwd);mRememberCheck.setChecked(true);}mRegisterButton.setOnClickListener(mListener);//采用OnClickListener方法设置不同按钮按下之后的监听事件mLoginButton.setOnClickListener(mListener);mCancleButton.setOnClickListener(mListener);mChangepwdText.setOnClickListener(mListener);ImageViewimage=(ImageView)findViewById(R.id.logo);//使用ImageView显示logoimage.setImageResource(R.drawable.logo);if(mUserDataManager==null){mUserDataManager=newUserDataManager(this);mUserDataManager.openDataBase();//建立本地数据库}}OnClickListenermListener=newOnClickListener(){//不同按钮按下的监听事件选择publicvoidonClick(Viewv){switch(v.getId()){caseR.id.login_btn_register://登录界面的注册按钮Intentintent_Login_to_Register=newIntent(Login.this,Register.class);//切换LoginActivity至UserActivitystartActivity(intent_Login_to_Register);finish();break;caseR.id.login_btn_login://登录界面的登录按钮login();break;caseR.id.login_btn_cancle://登录界面的注销按钮cancel();break;caseR.id.login_text_change_pwd://登录界面的注销按钮Intentintent_Login_to_reset=newIntent(Login.this,Resetpwd.class);//切换LoginActivity至UserActivitystartActivity(intent_Login_to_reset);finish();break;}}};publicvoidlogin(){//登录按钮监听事件if(isUserNameAndPwdValid()){StringuserName=mAccount.getText().toString().trim();//获取当前输入的用户名和密码信息StringuserPwd=mPwd.getText().toString().trim();SharedPreferences.Editoreditor=login_sp.edit();intresult=mUserDataManager.findUserByNameAndPwd(userName,userPwd);if(result==1){//返回1说明用户名和密码均正确//保存用户名和密码editor.putString(”USER_NAME”,userName);editor.putString(”PASSWORD”,userPwd);//是否记住密码if(mRememberCheck.isChecked()){editor.putBoolean(”mRememberCheck”,true);}else{editor.putBoolean(”mRememberCheck”,false);}mit();Intentintent=newIntent(Login.this,User.class);//切换LoginActivity至UserActivitystartActivity(intent);finish();Toast.makeText(this,getString(R.string.login_success),Toast.LENGTH_SHORT).show();//登录成功提示}elseif(result==0){Toast.makeText(this,getString(R.string.login_fail),Toast.LENGTH_SHORT).show();//登录失败提示}}}publicvoidcancel(){//注销if(isUserNameAndPwdValid()){StringuserName=mAccount.getText().toString().trim();//获取当前输入的用户名和密码信息StringuserPwd=mPwd.getText().toString().trim();intresult=mUserDataManager.findUserByNameAndPwd(userName,userPwd);if(result==1){//返回1说明用户名和密码均正确Toast.makeText(this,getString(R.string.cancel_success),Toast.LENGTH_SHORT).show();<spanstyle=“font-family:Arial;”>//注销成功提示</span>mPwd.setText(”“);mAccount.setText(”“);mUserDataManager.deleteUserDatabyname(userName);}elseif(result==0){Toast.makeText(this,getString(R.string.cancel_fail),Toast.LENGTH_SHORT).show();//注销失败提示}}}publicbooleanisUserNameAndPwdValid(){if(mAccount.getText().toString().trim().equals(“”)){Toast.makeText(this,getString(R.string.account_empty),Toast.LENGTH_SHORT).show();returnfalse;}elseif(mPwd.getText().toString().trim().equals(“”)){Toast.makeText(this,getString(R.string.pwd_empty),Toast.LENGTH_SHORT).show();returnfalse;}returntrue;}@OverrideprotectedvoidonResume(){if(mUserDataManager==null){mUserDataManager=newUserDataManager(this);mUserDataManager.openDataBase();}super.onResume();}@OverrideprotectedvoidonDestroy(){super.onDestroy();}@OverrideprotectedvoidonPause(){if(mUserDataManager!=null){mUserDataManager.closeDataBase();mUserDataManager=null;}super.onPause();}}

package com.example.foolishfan.user_v10;import android.app.Activity;import android.content.Intent;import android.content.SharedPreferences;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.CheckBox;import android.widget.EditText;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;public class Login extends Activity { //登录界面活动public int pwdresetFlag=0;private EditText mAccount; //用户名编辑private EditText mPwd; //密码编辑private Button mRegisterButton; //注册按钮private Button mLoginButton; //登录按钮private Button mCancleButton; //注销按钮private CheckBox mRememberCheck;private SharedPreferences login_sp;private String userNameValue,passwordValue;private View loginView; //登录private View loginSuccessView;private TextView loginSuccessShow;private TextView mChangepwdText;private UserDataManager mUserDataManager; //用户数据管理类@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.login);//通过id找到相应的控件mAccount = (EditText) findViewById(R.id.login_edit_account);mPwd = (EditText) findViewById(R.id.login_edit_pwd);mRegisterButton = (Button) findViewById(R.id.login_btn_register);mLoginButton = (Button) findViewById(R.id.login_btn_login);mCancleButton = (Button) findViewById(R.id.login_btn_cancle);loginView=findViewById(R.id.login_view);loginSuccessView=findViewById(R.id.login_success_view);loginSuccessShow=(TextView) findViewById(R.id.login_success_show);mChangepwdText = (TextView) findViewById(R.id.login_text_change_pwd);mRememberCheck = (CheckBox) findViewById(R.id.Login_Remember);login_sp = getSharedPreferences("userInfo", 0);String name=login_sp.getString("USER_NAME", "");String pwd =login_sp.getString("PASSWORD", "");boolean choseRemember =login_sp.getBoolean("mRememberCheck", false);boolean choseAutoLogin =login_sp.getBoolean("mAutologinCheck", false);//如果上次选了记住密码,那进入登录页面也自动勾选记住密码,并填上用户名和密码if(choseRemember){mAccount.setText(name);mPwd.setText(pwd);mRememberCheck.setChecked(true);}mRegisterButton.setOnClickListener(mListener); //采用OnClickListener方法设置不同按钮按下之后的监听事件mLoginButton.setOnClickListener(mListener);mCancleButton.setOnClickListener(mListener);mChangepwdText.setOnClickListener(mListener);ImageView image = (ImageView) findViewById(R.id.logo); //使用ImageView显示logoimage.setImageResource(R.drawable.logo);if (mUserDataManager == null) {mUserDataManager = new UserDataManager(this);mUserDataManager.openDataBase();//建立本地数据库}}OnClickListener mListener = new OnClickListener() { //不同按钮按下的监听事件选择public void onClick(View v) {switch (v.getId()) {case R.id.login_btn_register: //登录界面的注册按钮Intent intent_Login_to_Register = new Intent(Login.this,Register.class) ; //切换Login Activity至User ActivitystartActivity(intent_Login_to_Register);finish();break;case R.id.login_btn_login://登录界面的登录按钮login();break;case R.id.login_btn_cancle: //登录界面的注销按钮cancel();break;case R.id.login_text_change_pwd: //登录界面的注销按钮Intent intent_Login_to_reset = new Intent(Login.this,Resetpwd.class) ; //切换Login Activity至User ActivitystartActivity(intent_Login_to_reset);finish();break;}}};public void login() {//登录按钮监听事件if (isUserNameAndPwdValid()) {String userName = mAccount.getText().toString().trim(); //获取当前输入的用户名和密码信息String userPwd = mPwd.getText().toString().trim();SharedPreferences.Editor editor =login_sp.edit();int result=mUserDataManager.findUserByNameAndPwd(userName, userPwd);if(result==1){//返回1说明用户名和密码均正确//保存用户名和密码editor.putString("USER_NAME", userName);editor.putString("PASSWORD", userPwd);//是否记住密码if(mRememberCheck.isChecked()){editor.putBoolean("mRememberCheck", true);}else{editor.putBoolean("mRememberCheck", false);}mit();Intent intent = new Intent(Login.this,User.class) ; //切换Login Activity至User ActivitystartActivity(intent);finish();Toast.makeText(this, getString(R.string.login_success),Toast.LENGTH_SHORT).show();//登录成功提示}else if(result==0){Toast.makeText(this, getString(R.string.login_fail),Toast.LENGTH_SHORT).show(); //登录失败提示}}}public void cancel() { //注销if (isUserNameAndPwdValid()) {String userName = mAccount.getText().toString().trim(); //获取当前输入的用户名和密码信息String userPwd = mPwd.getText().toString().trim();int result=mUserDataManager.findUserByNameAndPwd(userName, userPwd);if(result==1){//返回1说明用户名和密码均正确Toast.makeText(this, getString(R.string.cancel_success),Toast.LENGTH_SHORT).show();<span style="font-family: Arial;">//注销成功提示</span>mPwd.setText("");mAccount.setText("");mUserDataManager.deleteUserDatabyname(userName);}else if(result==0){Toast.makeText(this, getString(R.string.cancel_fail),Toast.LENGTH_SHORT).show(); //注销失败提示}}}public boolean isUserNameAndPwdValid() {if (mAccount.getText().toString().trim().equals("")) {Toast.makeText(this, getString(R.string.account_empty),Toast.LENGTH_SHORT).show();return false;} else if (mPwd.getText().toString().trim().equals("")) {Toast.makeText(this, getString(R.string.pwd_empty),Toast.LENGTH_SHORT).show();return false;}return true;}@Overrideprotected void onResume() {if (mUserDataManager == null) {mUserDataManager = new UserDataManager(this);mUserDataManager.openDataBase();}super.onResume();}@Overrideprotected void onDestroy() {super.onDestroy();}@Overrideprotected void onPause() {if (mUserDataManager != null) {mUserDataManager.closeDataBase();mUserDataManager = null;}super.onPause();}}

Register.java【用户注册activity】

[java]view plain copy print ? packagecom.example.foolishfan.user_v10;importandroid.app.Activity;importandroid.content.Intent;importandroid.support.v7.app.AppCompatActivity;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.Toast;publicclassRegisterextendsAppCompatActivity{privateEditTextmAccount;//用户名编辑privateEditTextmPwd;//密码编辑privateEditTextmPwdCheck;//密码编辑privateButtonmSureButton;//确定按钮privateButtonmCancelButton;//取消按钮privateUserDataManagermUserDataManager;//用户数据管理类@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.register);mAccount=(EditText)findViewById(R.id.resetpwd_edit_name);mPwd=(EditText)findViewById(R.id.resetpwd_edit_pwd_old);mPwdCheck=(EditText)findViewById(R.id.resetpwd_edit_pwd_new);mSureButton=(Button)findViewById(R.id.register_btn_sure);mCancelButton=(Button)findViewById(R.id.register_btn_cancel);mSureButton.setOnClickListener(m_register_Listener);//注册界面两个按钮的监听事件mCancelButton.setOnClickListener(m_register_Listener);if(mUserDataManager==null){mUserDataManager=newUserDataManager(this);mUserDataManager.openDataBase();//建立本地数据库}}View.OnClickListenerm_register_Listener=newView.OnClickListener(){//不同按钮按下的监听事件选择publicvoidonClick(Viewv){switch(v.getId()){caseR.id.register_btn_sure://确认按钮的监听事件register_check();break;caseR.id.register_btn_cancel://取消按钮的监听事件,由注册界面返回登录界面Intentintent_Register_to_Login=newIntent(Register.this,Login.class);//切换UserActivity至LoginActivitystartActivity(intent_Register_to_Login);finish();break;}}};publicvoidregister_check(){//确认按钮的监听事件if(isUserNameAndPwdValid()){StringuserName=mAccount.getText().toString().trim();StringuserPwd=mPwd.getText().toString().trim();StringuserPwdCheck=mPwdCheck.getText().toString().trim();//检查用户是否存在intcount=mUserDataManager.findUserByName(userName);//用户已经存在时返回,给出提示文字if(count>0){Toast.makeText(this,getString(R.string.name_already_exist,userName),Toast.LENGTH_SHORT).show();return;}if(userPwd.equals(userPwdCheck)==false){//两次密码输入不一样Toast.makeText(this,getString(R.string.pwd_not_the_same),Toast.LENGTH_SHORT).show();return;}else{UserDatamUser=newUserData(userName,userPwd);mUserDataManager.openDataBase();longflag=mUserDataManager.insertUserData(mUser);//新建用户信息if(flag==-1){Toast.makeText(this,getString(R.string.register_fail),Toast.LENGTH_SHORT).show();}else{Toast.makeText(this,getString(R.string.register_success),Toast.LENGTH_SHORT).show();Intentintent_Register_to_Login=newIntent(Register.this,Login.class);//切换UserActivity至LoginActivitystartActivity(intent_Register_to_Login);finish();}}}}publicbooleanisUserNameAndPwdValid(){if(mAccount.getText().toString().trim().equals(“”)){Toast.makeText(this,getString(R.string.account_empty),Toast.LENGTH_SHORT).show();returnfalse;}elseif(mPwd.getText().toString().trim().equals(“”)){Toast.makeText(this,getString(R.string.pwd_empty),Toast.LENGTH_SHORT).show();returnfalse;}elseif(mPwdCheck.getText().toString().trim().equals(“”)){Toast.makeText(this,getString(R.string.pwd_check_empty),Toast.LENGTH_SHORT).show();returnfalse;}returntrue;}}

package com.example.foolishfan.user_v10;import android.app.Activity;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class Register extends AppCompatActivity {private EditText mAccount; //用户名编辑private EditText mPwd; //密码编辑private EditText mPwdCheck; //密码编辑private Button mSureButton; //确定按钮private Button mCancelButton; //取消按钮private UserDataManager mUserDataManager; //用户数据管理类@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.register);mAccount = (EditText) findViewById(R.id.resetpwd_edit_name);mPwd = (EditText) findViewById(R.id.resetpwd_edit_pwd_old);mPwdCheck = (EditText) findViewById(R.id.resetpwd_edit_pwd_new);mSureButton = (Button) findViewById(R.id.register_btn_sure);mCancelButton = (Button) findViewById(R.id.register_btn_cancel);mSureButton.setOnClickListener(m_register_Listener);//注册界面两个按钮的监听事件mCancelButton.setOnClickListener(m_register_Listener);if (mUserDataManager == null) {mUserDataManager = new UserDataManager(this);mUserDataManager.openDataBase();//建立本地数据库}}View.OnClickListener m_register_Listener = new View.OnClickListener() { //不同按钮按下的监听事件选择public void onClick(View v) {switch (v.getId()) {case R.id.register_btn_sure: //确认按钮的监听事件register_check();break;case R.id.register_btn_cancel: //取消按钮的监听事件,由注册界面返回登录界面Intent intent_Register_to_Login = new Intent(Register.this,Login.class) ; //切换User Activity至Login ActivitystartActivity(intent_Register_to_Login);finish();break;}}};public void register_check() { //确认按钮的监听事件if (isUserNameAndPwdValid()) {String userName = mAccount.getText().toString().trim();String userPwd = mPwd.getText().toString().trim();String userPwdCheck = mPwdCheck.getText().toString().trim();//检查用户是否存在int count=mUserDataManager.findUserByName(userName);//用户已经存在时返回,给出提示文字if(count>0){Toast.makeText(this, getString(R.string.name_already_exist, userName),Toast.LENGTH_SHORT).show();return ;}if(userPwd.equals(userPwdCheck)==false){//两次密码输入不一样Toast.makeText(this, getString(R.string.pwd_not_the_same),Toast.LENGTH_SHORT).show();return ;} else {UserData mUser = new UserData(userName, userPwd);mUserDataManager.openDataBase();long flag = mUserDataManager.insertUserData(mUser); //新建用户信息if (flag == -1) {Toast.makeText(this, getString(R.string.register_fail),Toast.LENGTH_SHORT).show();}else{Toast.makeText(this, getString(R.string.register_success),Toast.LENGTH_SHORT).show();Intent intent_Register_to_Login = new Intent(Register.this,Login.class) ; //切换User Activity至Login ActivitystartActivity(intent_Register_to_Login);finish();}}}}public boolean isUserNameAndPwdValid() {if (mAccount.getText().toString().trim().equals("")) {Toast.makeText(this, getString(R.string.account_empty),Toast.LENGTH_SHORT).show();return false;} else if (mPwd.getText().toString().trim().equals("")) {Toast.makeText(this, getString(R.string.pwd_empty),Toast.LENGTH_SHORT).show();return false;}else if(mPwdCheck.getText().toString().trim().equals("")) {Toast.makeText(this, getString(R.string.pwd_check_empty),Toast.LENGTH_SHORT).show();return false;}return true;}}

Resetpwd.java【重新设置密码】

[java]view plain copy print ? packagecom.example.foolishfan.user_v10;importandroid.app.Activity;importandroid.content.Intent;importandroid.support.v7.app.AppCompatActivity;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.RelativeLayout;importandroid.widget.Toast;publicclassResetpwdextendsAppCompatActivity{privateEditTextmAccount;//用户名编辑privateEditTextmPwd_old;//密码编辑privateEditTextmPwd_new;//密码编辑privateEditTextmPwdCheck;//密码编辑privateButtonmSureButton;//确定按钮privateButtonmCancelButton;//取消按钮privateUserDataManagermUserDataManager;//用户数据管理类@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.resetpwd);mAccount=(EditText)findViewById(R.id.resetpwd_edit_name);mPwd_old=(EditText)findViewById(R.id.resetpwd_edit_pwd_old);mPwd_new=(EditText)findViewById(R.id.resetpwd_edit_pwd_new);mPwdCheck=(EditText)findViewById(R.id.resetpwd_edit_pwd_check);mSureButton=(Button)findViewById(R.id.resetpwd_btn_sure);mCancelButton=(Button)findViewById(R.id.resetpwd_btn_cancel);mSureButton.setOnClickListener(m_resetpwd_Listener);//注册界面两个按钮的监听事件mCancelButton.setOnClickListener(m_resetpwd_Listener);if(mUserDataManager==null){mUserDataManager=newUserDataManager(this);mUserDataManager.openDataBase();//建立本地数据库}}View.OnClickListenerm_resetpwd_Listener=newView.OnClickListener(){//不同按钮按下的监听事件选择publicvoidonClick(Viewv){switch(v.getId()){caseR.id.resetpwd_btn_sure://确认按钮的监听事件resetpwd_check();break;caseR.id.resetpwd_btn_cancel://取消按钮的监听事件,由注册界面返回登录界面Intentintent_Resetpwd_to_Login=newIntent(Resetpwd.this,Login.class);//切换ResetpwdActivity至LoginActivitystartActivity(intent_Resetpwd_to_Login);finish();break;}}};publicvoidresetpwd_check(){//确认按钮的监听事件if(isUserNameAndPwdValid()){StringuserName=mAccount.getText().toString().trim();StringuserPwd_old=mPwd_old.getText().toString().trim();StringuserPwd_new=mPwd_new.getText().toString().trim();StringuserPwdCheck=mPwdCheck.getText().toString().trim();intresult=mUserDataManager.findUserByNameAndPwd(userName,userPwd_old);if(result==1){//返回1说明用户名和密码均正确,继续后续操作if(userPwd_new.equals(userPwdCheck)==false){//两次密码输入不一样Toast.makeText(this,getString(R.string.pwd_not_the_same),Toast.LENGTH_SHORT).show();return;}else{UserDatamUser=newUserData(userName,userPwd_new);mUserDataManager.openDataBase();booleanflag=mUserDataManager.updateUserData(mUser);if(flag==false){Toast.makeText(this,getString(R.string.resetpwd_fail),Toast.LENGTH_SHORT).show();}else{Toast.makeText(this,getString(R.string.resetpwd_success),Toast.LENGTH_SHORT).show();mUser.pwdresetFlag=1;Intentintent_Register_to_Login=newIntent(Resetpwd.this,Login.class);//切换UserActivity至LoginActivitystartActivity(intent_Register_to_Login);finish();}}}elseif(result==0){//返回0说明用户名和密码不匹配,重新输入Toast.makeText(this,getString(R.string.pwd_not_fit_user),Toast.LENGTH_SHORT).show();return;}}}publicbooleanisUserNameAndPwdValid(){StringuserName=mAccount.getText().toString().trim();//检查用户是否存在intcount=mUserDataManager.findUserByName(userName);//用户不存在时返回,给出提示文字if(count<=0){Toast.makeText(this,getString(R.string.name_not_exist,userName),Toast.LENGTH_SHORT).show();returnfalse;}if(mAccount.getText().toString().trim().equals(“”)){Toast.makeText(this,getString(R.string.account_empty),Toast.LENGTH_SHORT).show();returnfalse;}elseif(mPwd_old.getText().toString().trim().equals(“”)){Toast.makeText(this,getString(R.string.pwd_empty),Toast.LENGTH_SHORT).show();returnfalse;}elseif(mPwd_new.getText().toString().trim().equals(“”)){Toast.makeText(this,getString(R.string.pwd_new_empty),Toast.LENGTH_SHORT).show();returnfalse;}elseif(mPwdCheck.getText().toString().trim().equals(“”)){Toast.makeText(this,getString(R.string.pwd_check_empty),Toast.LENGTH_SHORT).show();returnfalse;}returntrue;}}

package com.example.foolishfan.user_v10;import android.app.Activity;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.RelativeLayout;import android.widget.Toast;public class Resetpwd extends AppCompatActivity {private EditText mAccount; //用户名编辑private EditText mPwd_old; //密码编辑private EditText mPwd_new; //密码编辑private EditText mPwdCheck; //密码编辑private Button mSureButton; //确定按钮private Button mCancelButton; //取消按钮private UserDataManager mUserDataManager; //用户数据管理类@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.resetpwd);mAccount = (EditText) findViewById(R.id.resetpwd_edit_name);mPwd_old = (EditText) findViewById(R.id.resetpwd_edit_pwd_old);mPwd_new = (EditText) findViewById(R.id.resetpwd_edit_pwd_new);mPwdCheck = (EditText) findViewById(R.id.resetpwd_edit_pwd_check);mSureButton = (Button) findViewById(R.id.resetpwd_btn_sure);mCancelButton = (Button) findViewById(R.id.resetpwd_btn_cancel);mSureButton.setOnClickListener(m_resetpwd_Listener);//注册界面两个按钮的监听事件mCancelButton.setOnClickListener(m_resetpwd_Listener);if (mUserDataManager == null) {mUserDataManager = new UserDataManager(this);mUserDataManager.openDataBase();//建立本地数据库}}View.OnClickListener m_resetpwd_Listener = new View.OnClickListener() { //不同按钮按下的监听事件选择public void onClick(View v) {switch (v.getId()) {case R.id.resetpwd_btn_sure: //确认按钮的监听事件resetpwd_check();break;case R.id.resetpwd_btn_cancel: //取消按钮的监听事件,由注册界面返回登录界面Intent intent_Resetpwd_to_Login = new Intent(Resetpwd.this,Login.class) ; //切换Resetpwd Activity至Login ActivitystartActivity(intent_Resetpwd_to_Login);finish();break;}}};public void resetpwd_check() { //确认按钮的监听事件if (isUserNameAndPwdValid()) {String userName = mAccount.getText().toString().trim();String userPwd_old = mPwd_old.getText().toString().trim();String userPwd_new = mPwd_new.getText().toString().trim();String userPwdCheck = mPwdCheck.getText().toString().trim();int result=mUserDataManager.findUserByNameAndPwd(userName, userPwd_old);if(result==1){//返回1说明用户名和密码均正确,继续后续操作if(userPwd_new.equals(userPwdCheck)==false){ //两次密码输入不一样Toast.makeText(this, getString(R.string.pwd_not_the_same),Toast.LENGTH_SHORT).show();return ;} else {UserData mUser = new UserData(userName, userPwd_new);mUserDataManager.openDataBase();boolean flag = mUserDataManager.updateUserData(mUser);if (flag == false) {Toast.makeText(this, getString(R.string.resetpwd_fail),Toast.LENGTH_SHORT).show();}else{Toast.makeText(this, getString(R.string.resetpwd_success),Toast.LENGTH_SHORT).show();mUser.pwdresetFlag=1;Intent intent_Register_to_Login = new Intent(Resetpwd.this,Login.class) ; //切换User Activity至Login ActivitystartActivity(intent_Register_to_Login);finish();}}}else if(result==0){ //返回0说明用户名和密码不匹配,重新输入Toast.makeText(this, getString(R.string.pwd_not_fit_user),Toast.LENGTH_SHORT).show();return;}}}public boolean isUserNameAndPwdValid() {String userName = mAccount.getText().toString().trim();//检查用户是否存在int count=mUserDataManager.findUserByName(userName);//用户不存在时返回,给出提示文字if(count<=0){Toast.makeText(this, getString(R.string.name_not_exist, userName),Toast.LENGTH_SHORT).show();return false;}if (mAccount.getText().toString().trim().equals("")) {Toast.makeText(this, getString(R.string.account_empty),Toast.LENGTH_SHORT).show();return false;} else if (mPwd_old.getText().toString().trim().equals("")) {Toast.makeText(this, getString(R.string.pwd_empty),Toast.LENGTH_SHORT).show();return false;} else if (mPwd_new.getText().toString().trim().equals("")) {Toast.makeText(this, getString(R.string.pwd_new_empty),Toast.LENGTH_SHORT).show();return false;}else if(mPwdCheck.getText().toString().trim().equals("")) {Toast.makeText(this, getString(R.string.pwd_check_empty),Toast.LENGTH_SHORT).show();return false;}return true;}}

User.java【用户个人中心】

[java]view plain copy print ? packagecom.example.foolishfan.user_v10;importandroid.content.Intent;importandroid.support.v7.app.AppCompatActivity;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.Button;publicclassUserextendsAppCompatActivity{privateButtonmReturnButton;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.user);mReturnButton=(Button)findViewById(R.id.returnback);}publicvoidback_to_login(Viewview){Intentintent3=newIntent(User.this,Login.class);startActivity(intent3);finish();}}

package com.example.foolishfan.user_v10;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;public class User extends AppCompatActivity {private Button mReturnButton;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.user);mReturnButton = (Button)findViewById(R.id.returnback);}public void back_to_login(View view) {Intent intent3 = new Intent(User.this,Login.class) ;startActivity(intent3);finish();}}

二、功能分析

上面工程涉及到的这些内容,在网上有很多写的很有参考价值的资料,建议可单独熟悉各个部分内容,然后添加功能到已有代码基础上,由于好多天后才整理的博客,缺少很多刚学习时遇到的种种错误及其解决方法,细节之处还望多交流。

<1>:Button,TextView,TextEdit,ImageView,RatioButton等基本控件的使用

<2>:多个Activities之间的切换

<3>:使用Android本地数据库来管理用户信息

1:登录功能

通过登录按钮的监听事件实现登录,登录过程中需要判断用户名是否存在,密码是否正确,核心函数:[java]view plain copy print ? publicvoidlogin(){//登录按钮监听事件if(isUserNameAndPwdValid()){StringuserName=mAccount.getText().toString().trim();//获取当前输入的用户名和密码信息StringuserPwd=mPwd.getText().toString().trim();SharedPreferences.Editoreditor=login_sp.edit();intresult=mUserDataManager.findUserByNameAndPwd(userName,userPwd);if(result==1){//返回1说明用户名和密码均正确//保存用户名和密码editor.putString(”USER_NAME”,userName);editor.putString(”PASSWORD”,userPwd);//是否记住密码if(mRememberCheck.isChecked()){editor.putBoolean(”mRememberCheck”,true);}else{editor.putBoolean(”mRememberCheck”,false);}mit();Intentintent=newIntent(Login.this,User.class);startActivity(intent);finish();Toast.makeText(this,getString(R.string.login_success),Toast.LENGTH_SHORT).show();//登录成功提示}elseif(result==0){Toast.makeText(this,getString(R.string.login_fail),Toast.LENGTH_SHORT).show();//登录失败提示}}}

public void login() { //登录按钮监听事件if (isUserNameAndPwdValid()) {String userName = mAccount.getText().toString().trim();//获取当前输入的用户名和密码信息String userPwd = mPwd.getText().toString().trim();SharedPreferences.Editor editor =login_sp.edit();int result=mUserDataManager.findUserByNameAndPwd(userName, userPwd);if(result==1){ //返回1说明用户名和密码均正确//保存用户名和密码editor.putString("USER_NAME", userName);editor.putString("PASSWORD", userPwd);//是否记住密码if(mRememberCheck.isChecked()){editor.putBoolean("mRememberCheck", true);}else{editor.putBoolean("mRememberCheck", false);}mit();Intent intent = new Intent(Login.this,User.class) ;startActivity(intent);finish();Toast.makeText(this, getString(R.string.login_success),Toast.LENGTH_SHORT).show();//登录成功提示}else if(result==0){Toast.makeText(this, getString(R.string.login_fail),Toast.LENGTH_SHORT).show(); //登录失败提示}}}

2:注册功能

登录界面上点击注册按钮,进入对应监听事件,直接实现从Login的Activity到Register的Activity的跳转,然后在Register的Activity上实现用户注册,核心函数:

[java]view plain copy print ? publicvoidregister_check(){//确认按钮的监听事件if(isUserNameAndPwdValid()){StringuserName=mAccount.getText().toString().trim();StringuserPwd=mPwd.getText().toString().trim();StringuserPwdCheck=mPwdCheck.getText().toString().trim();//检查用户是否存在intcount=mUserDataManager.findUserByName(userName);//用户已经存在时返回,给出提示文字if(count>0){Toast.makeText(this,getString(R.string.name_already_exist,userName),Toast.LENGTH_SHORT).show();return;}if(userPwd.equals(userPwdCheck)==false){//两次密码输入不一样Toast.makeText(this,getString(R.string.pwd_not_the_same),Toast.LENGTH_SHORT).show();return;}else{UserDatamUser=newUserData(userName,userPwd);mUserDataManager.openDataBase();longflag=mUserDataManager.insertUserData(mUser);//新建用户信息if(flag==-1){Toast.makeText(this,getString(R.string.register_fail),Toast.LENGTH_SHORT).show();}else{Toast.makeText(this,getString(R.string.register_success),Toast.LENGTH_SHORT).show();Intentintent_Register_to_Login=newIntent(Register.this,Login.class);startActivity(intent_Register_to_Login);finish();}}}}

public void register_check() { //确认按钮的监听事件if (isUserNameAndPwdValid()) {String userName = mAccount.getText().toString().trim();String userPwd = mPwd.getText().toString().trim();String userPwdCheck = mPwdCheck.getText().toString().trim();//检查用户是否存在int count=mUserDataManager.findUserByName(userName);//用户已经存在时返回,给出提示文字if(count>0){Toast.makeText(this, getString(R.string.name_already_exist, userName),Toast.LENGTH_SHORT).show();return ;}if(userPwd.equals(userPwdCheck)==false){//两次密码输入不一样Toast.makeText(this, getString(R.string.pwd_not_the_same),Toast.LENGTH_SHORT).show();return ;} else {UserData mUser = new UserData(userName, userPwd);mUserDataManager.openDataBase();long flag = mUserDataManager.insertUserData(mUser); //新建用户信息if (flag == -1) {Toast.makeText(this, getString(R.string.register_fail),Toast.LENGTH_SHORT).show();}else{Toast.makeText(this, getString(R.string.register_success),Toast.LENGTH_SHORT).show();Intent intent_Register_to_Login = new Intent(Register.this,Login.class) ; startActivity(intent_Register_to_Login);finish();}}}}

3:修改密码功能

在登录界面点击“修改密码”即可进入对应的Resetpwd的Activity,实现用户密码的修改,核心函数:

[java]view plain copy print ? publicvoidresetpwd_check(){//确认按钮的监听事件if(isUserNameAndPwdValid()){StringuserName=mAccount.getText().toString().trim();StringuserPwd_old=mPwd_old.getText().toString().trim();StringuserPwd_new=mPwd_new.getText().toString().trim();StringuserPwdCheck=mPwdCheck.getText().toString().trim();intresult=mUserDataManager.findUserByNameAndPwd(userName,userPwd_old);if(result==1){//返回1说明用户名和密码均正确,继续后续操作if(userPwd_new.equals(userPwdCheck)==false){//两次密码输入不一样Toast.makeText(this,getString(R.string.pwd_not_the_same),Toast.LENGTH_SHORT).show();return;}else{UserDatamUser=newUserData(userName,userPwd_new);mUserDataManager.openDataBase();booleanflag=mUserDataManager.updateUserData(mUser);if(flag==false){Toast.makeText(this,getString(R.string.resetpwd_fail),Toast.LENGTH_SHORT).show();}else{Toast.makeText(this,getString(R.string.resetpwd_success),Toast.LENGTH_SHORT).show();mUser.pwdresetFlag=1;Intentintent_Register_to_Login=newIntent(Resetpwd.this,Login.class);startActivity(intent_Register_to_Login);finish();}}}elseif(result==0){//返回0说明用户名和密码不匹配,重新输入Toast.makeText(this,getString(R.string.pwd_not_fit_user),Toast.LENGTH_SHORT).show();return;}}}

public void resetpwd_check() { //确认按钮的监听事件if (isUserNameAndPwdValid()) {String userName = mAccount.getText().toString().trim();String userPwd_old = mPwd_old.getText().toString().trim();String userPwd_new = mPwd_new.getText().toString().trim();String userPwdCheck = mPwdCheck.getText().toString().trim();int result=mUserDataManager.findUserByNameAndPwd(userName, userPwd_old);if(result==1){//返回1说明用户名和密码均正确,继续后续操作if(userPwd_new.equals(userPwdCheck)==false){ //两次密码输入不一样Toast.makeText(this, getString(R.string.pwd_not_the_same),Toast.LENGTH_SHORT).show();return ;} else {UserData mUser = new UserData(userName, userPwd_new);mUserDataManager.openDataBase();boolean flag = mUserDataManager.updateUserData(mUser);if (flag == false) {Toast.makeText(this, getString(R.string.resetpwd_fail),Toast.LENGTH_SHORT).show();}else{Toast.makeText(this, getString(R.string.resetpwd_success),Toast.LENGTH_SHORT).show();mUser.pwdresetFlag=1;Intent intent_Register_to_Login = new Intent(Resetpwd.this,Login.class) ; startActivity(intent_Register_to_Login);finish();}}}else if(result==0){ //返回0说明用户名和密码不匹配,重新输入Toast.makeText(this, getString(R.string.pwd_not_fit_user),Toast.LENGTH_SHORT).show();return;}}}

4:注销功能

注销功能直接在登录界面,当用户名和密码均正确时,点击注销按钮将直接注销用户【各位可根据需求将注销放在个人中心里面进行操作】。核心函数:

[java]view plain copy print ? publicvoidcancel(){//注销if(isUserNameAndPwdValid()){StringuserName=mAccount.getText().toString().trim();//获取当前输入的用户名和密码信息StringuserPwd=mPwd.getText().toString().trim();intresult=mUserDataManager.findUserByNameAndPwd(userName,userPwd);if(result==1){//返回1说明用户名和密码均正确Toast.makeText(this,getString(R.string.cancel_success),Toast.LENGTH_SHORT).show();//登录成功提示mPwd.setText(”“);mAccount.setText(”“);mUserDataManager.deleteUserDatabyname(userName);}elseif(result==0){Toast.makeText(this,getString(R.string.cancel_fail),Toast.LENGTH_SHORT).show();//登录失败提示}}}

public void cancel() { //注销if (isUserNameAndPwdValid()) {String userName = mAccount.getText().toString().trim(); //获取当前输入的用户名和密码信息String userPwd = mPwd.getText().toString().trim();int result=mUserDataManager.findUserByNameAndPwd(userName, userPwd);if(result==1){//返回1说明用户名和密码均正确Toast.makeText(this, getString(R.string.cancel_success),Toast.LENGTH_SHORT).show();//登录成功提示mPwd.setText("");mAccount.setText("");mUserDataManager.deleteUserDatabyname(userName);}else if(result==0){Toast.makeText(this, getString(R.string.cancel_fail),Toast.LENGTH_SHORT).show(); //登录失败提示}}}

5:记住密码

当记住密码的RadioButton为真时,系统将记住此时用户登录的信息,用户在下次登录时可避免再次输入用户名和密码的麻烦,实现细节在Login的Activity中。这里给一个大牛用SharedPreferences做的记住密码连接:这里

三、工程源码下载

初学不久,工程代码中可能存在一些bug,望各位不吝指出,有个bug测试出来了,就是在记住密码之后对该账户进行密码修改后返回登录界面,此时记住的密码为原来的密码,不可登陆,我相信这个小bug是难不到你们的,^_^。 例程源码User_V2.0

转自StayFoolish_Fan的博客:/StayFoolish_Fan/article/details/51933563?locationNum=7&fps=1

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。