Android Walker登录记住密码页面功能实现
程序员文章站
2023-10-22 17:24:52
本文实例为大家分享了android walker登录记住密码页面的具体代码,供大家参考,具体内容如下
目标效果:
这一次修改的不多,添加了点击用户登录的...
本文实例为大家分享了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.程序运行就显示目标效果了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
Android Walker登录记住密码页面功能实现
-
Android SharedPreferences实现记住密码和自动登录
-
Android实现用户登录记住密码功能
-
Android利用CountDownTimer实现倒计时功能 Android实现停留5s跳转到登录页面
-
Android sharedPreferences实现记住密码功能
-
Android制作登录页面并且记住账号密码功能的实现代码
-
Android Walker登录记住密码页面功能实现
-
Android SharedPreferences实现记住密码和自动登录
-
Android通过SharedPreferences实现自动登录记住用户名和密码功能
-
Android登录记住多个密码的实现方法