当前位置: 移动技术网 > 移动技术>移动开发>Android > Android Walker登录记住密码页面功能实现

Android Walker登录记住密码页面功能实现

2019年07月23日  | 移动技术网移动技术  | 我要评论

本文实例为大家分享了android walker登录记住密码页面的具体代码,供大家参考,具体内容如下

目标效果:

 

这一次修改的不多,添加了点击用户登录的跳转,登录页面的记住密码,和程序运行一次后,不进入导航页面的功能。

1.mainactivity.java页面修改了setonitemclicklistener的点击事件,进行跳转。

mainactivity.java页面:

package com.example.login;
 
import java.util.arraylist;
import java.util.list;
 
import com.example.walkersimulate.util.slidemenu;
 
import android.os.bundle;
import android.app.activity;
import android.content.intent;
import android.view.menu;
import android.view.view;
import android.view.view.onclicklistener;
import android.view.window;
import android.widget.adapterview;
import android.widget.adapterview.onitemclicklistener;
import android.widget.imageview;
import android.widget.listview;
import android.widget.toast;
 
public class mainactivity extends activity {
 
 private slidemenu slidemenu;
 private imageview ivswitchslidemenu;
 private intent intent;
 
 @override
 protected void oncreate(bundle savedinstancestate) {
 super.oncreate(savedinstancestate);
 requestwindowfeature(window.feature_no_title);
 setcontentview(r.layout.activity_main);
 
 initmenulist();
 slidemenu = (slidemenu) findviewbyid(r.id.slidemenu);
 ivswitchslidemenu = (imageview) findviewbyid(r.id.switch_slidemenu);
 ivswitchslidemenu.setonclicklistener(new onclicklistener() {
 
 @override
 public void onclick(view view) {
 if (slidemenu.ismainscreenshowing()) {// 判断滑动菜单是否已打开,如果未打开
  slidemenu.openmenu(); // 打开滑动菜单
 } else {
  slidemenu.closemenu();// 关闭滑动菜单
 }
 }
 });
 }
 
 private void initmenulist() {
 /*设置数据源(图片和文本信息)*/
 int[] icons = { r.drawable.icons_menu_login,
 r.drawable.icons_menu_sport, r.drawable.icons_menu_inform,
 r.drawable.icons_menu_history, r.drawable.icons_menu_weather,
 r.drawable.icons_menu_health, r.drawable.icons_menu_setting };
 final string[] introductons = getresources().getstringarray(
 r.array.menulist);
 /*实例列表*/
 list<item> items = new arraylist<item>();
 /*向列表中添加图片和对应的文本信息*/
 for (int i = 0; i < icons.length; i++) {
 items.add(new item(icons[i], introductons[i]));
 }
 listview lvmenulist = (listview) findviewbyid(r.id.lvmenulist);
 /*创建适配器*/
 itemadapter adapter = new itemadapter(this, r.layout.menulist_item,
 items);
 /*配置适配器*/
 lvmenulist.setadapter(adapter);
 /*列表某一项的点击事件*/
 lvmenulist.setonitemclicklistener(new onitemclicklistener() {
 
 @override
 public void onitemclick(adapterview<?> adapterview, view view,
  int position, long id) {
 switch (position) {
 case 0:
  intent=new intent(mainactivity.this,loginactivity.class);
  startactivity(intent);
  break;
 
 default:
  break;
 }
 }
 });
 }
}

2.welcomeactivity.java页面修改onanimationend动画结束事件。

welcomeactivity.java页面:

package com.example.login;
 
import android.os.bundle;
import android.app.activity;
import android.content.intent;
import android.content.sharedpreferences;
import android.content.sharedpreferences.editor;
import android.view.menu;
import android.view.animation.alphaanimation;
import android.view.animation.animation;
import android.view.animation.animation.animationlistener;
import android.widget.relativelayout;
 
public class welcomeactivity extends activity {
 
 private intent intent;
 private sharedpreferences pref;
 private boolean isfirst=true;//用于判断是否是第一次运行,运行后变为false
 @override
 protected void oncreate(bundle savedinstancestate) {
 super.oncreate(savedinstancestate);
 setcontentview(r.layout.activity_welcome);
 
 relativelayout layoutwelcome=(relativelayout) findviewbyid(r.id.layoutwelcome);
 alphaanimation alphaanimation=new alphaanimation(0.1f,1.0f);
 alphaanimation.setduration(3000);
 layoutwelcome.startanimation(alphaanimation);
 alphaanimation.setanimationlistener(new animationlistener() {
 @override
 public void onanimationstart(animation animation) {
 }
 @override
 public void onanimationrepeat(animation animation) {
 }
 @override
 public void onanimationend(animation animation) {
 judgeintent();
 }
 private void judgeintent() {
 pref=getsharedpreferences("isfirst",mode_private);//创建sharedpreferences对象
 isfirst=pref.getboolean("isfirstin",true);//如果第一次运行,无isfirstin值,自动获取第二个参数为默认值
 if(isfirst){//如果为true,进入if语句
  intent=new intent(welcomeactivity.this,giudeactivity.class);
  editor editor=pref.edit();
  editor.putboolean("isfirstin",false);//保存isfirstin值为false
  editor.commit();//提交数据
 }else{
  intent=new intent(welcomeactivity.this,mainactivity.class);//如果为false,说明程序已经运行过,直接跳转到主页面
 }
 startactivity(intent);
 finish();
 }
 });
 }
 
}

3.login_top.xml页面添加多选框,用于选择记住密码。

login_top.xml页面:

<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:background="@drawable/logintop_bg"   
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:paddingbottom="@dimen/activity_horizontal_margin"
 android:paddingleft="@dimen/activity_horizontal_margin"
 android:paddingright="@dimen/activity_horizontal_margin"
 android:paddingtop="@dimen/activity_top_margin"
 tools:context=".mainactivity" >  
 
 <edittext
  android:id="@+id/etname"
  android:hint="@string/etname"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:layout_alignparentleft="true"
  android:layout_alignparenttop="true"
  android:background="@android:drawable/edit_text"  
  android:drawableleft="@drawable/etaccount"
  android:drawablepadding="25dp"
  android:ems="10" >
  <requestfocus />
 </edittext>
 
 <edittext
  android:id="@+id/etpass"
  android:hint="@string/etpass"
  android:layout_width="match_parent" 
  android:layout_height="wrap_content"
  android:layout_alignleft="@+id/etname"
  android:layout_below="@+id/etname"
  android:layout_margintop="10dp"
  android:background="@android:drawable/edit_text"
  android:drawableleft="@drawable/etpass"
  android:drawablepadding="10dp"
  android:ems="10"  
  android:inputtype="textpassword" />
 <checkbox 
  android:id="@+id/cbsave"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_margintop="110dp"
  android:text="记住密码"/>
 
 <linearlayout         
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:layout_alignleft="@+id/etpass"
  android:layout_below="@+id/etpass"
  android:layout_margintop="40dp" >
 
  <button
   android:id="@+id/btlogin"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_weight="1"
   android:background="@drawable/btchange_bg"
   android:text="@string/btlogin" />
 
  <button
   android:id="@+id/btregister"      
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_weight="1"
   android:background="@drawable/btchange_bg"   
   android:text="@string/btregister"
   android:layout_marginleft="5dp" />
 </linearlayout>        
 
</relativelayout>

4.loginactivity.java页面处理数据并保存。

loginactivity.java页面:

package com.example.login;
 
import android.app.activity;
import android.content.sharedpreferences;
import android.content.sharedpreferences.editor;
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.toast;
 
public class loginactivity extends activity implements onclicklistener{
 
 private edittext etname,etpass;
 private checkbox cbsave;
 private button btlogin,btregister;
 private sharedpreferences pref;
 private editor editor;
 @override
 protected void oncreate(bundle savedinstancestate) {
 super.oncreate(savedinstancestate);
 setcontentview(r.layout.activity_login);
 
 /*获取控件id*/
 getid();
 /*获取数据*/
 getdata();
 /*绑定点击事件*/
 bindclick();
 }
 
 /*获取控件id*/
 private void getid() {
 etname=(edittext) findviewbyid(r.id.etname);
 etpass=(edittext) findviewbyid(r.id.etpass);
 cbsave=(checkbox) findviewbyid(r.id.cbsave);
 btlogin=(button) findviewbyid(r.id.btlogin);
 btregister=(button) findviewbyid(r.id.btregister);
 }
 
 /*获取数据*/
 private void getdata() {
 pref=getsharedpreferences("savalogin",mode_private);//创建sharedpreferences对象
 editor=pref.edit();//创建sharedpreferences的编辑器
 string username=pref.getstring("username","");//获取用户名,没有则用空代替
 string userpass=pref.getstring("userpass","");
 if(username.equals("")){//如果为空,代表前一次为选择记住密码,则这次显示记住密码多选框不打勾
 cbsave.setchecked(false);
 }else{
 cbsave.setchecked(true);
 etname.settext(username);//将获取到的值设置为text
 etpass.settext(userpass);
 }
 }
 
 /*点击事件保存数据*/
 @override
 public void onclick(view view) {
 switch (view.getid()) {
 case r.id.btlogin:
 string username=etname.gettext().tostring().trim();//获取edittext中输入的值,并去掉空格
 string userpass=etpass.gettext().tostring().trim();
 if("admin".equals(username)&&"123456".equals(userpass)){
 if(cbsave.ischecked()){
  editor.putstring("username",username);
  editor.putstring("userpass",userpass);
  editor.commit();//提交数据
 }else{//若没有选择记住密码
  editor.remove("userpass");//删除密码
  editor.commit();
 }
 toast.maketext(loginactivity.this,"登录成功",toast.length_short).show();
 }else{
 toast.maketext(loginactivity.this,"用户名或密码错误",toast.length_short).show();
 }
 break;
 
 case r.id.btregister:
 break;
 }
 }
 
 private void bindclick() {
 btlogin.setonclicklistener(this);
 btregister.setonclicklistener(this);
 }
}

5.程序运行就显示目标效果了。

源码下载:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网