sharedpreference方面的内容还算是比较简单易懂的,在此还是主要贴上效果与代码,最后也是附上源码。
首先是输入账号admin,密码123,选择记住密码登陆。
登陆后就直接跳转页面。
随后再次打开app可以发现已经记住了密码。
如果输错了密码,或者在登陆的时候没有选择记住密码,那么会将sharedpreference的文件清空,再次登陆后又会是空的edittext。
mainactivity:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
import android.app.activity; import android.content.intent; import android.content.sharedpreferences; import android.preference.preferencemanager; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.view.menu; import android.view.menuitem; import android.view.view; import android.view.window; import android.widget.button; import android.widget.checkbox; import android.widget.edittext; import android.widget.toast; public class mainactivity extends activity { //使用sharedpreferences进行读取 private sharedpreferences pref; //使用sharedpreferences.editor进行存储 private sharedpreferences.editor editor; private button button; private checkbox checkbox; private edittext accountedit; private edittext passwordedit; @override protected void oncreate(bundle savedinstancestate) { super .oncreate(savedinstancestate); //取消标题 requestwindowfeature(window.feature_no_title); setcontentview(r.layout.activity_main); //制定sharedpreference的文件名为data pref= getsharedpreferences( "data" ,mode_private); editor=pref.edit(); accountedit=(edittext)findviewbyid(r.id.account); passwordedit=(edittext)findviewbyid(r.id.password); checkbox=(checkbox)findviewbyid(r.id.remember_password); button=(button)findviewbyid(r.id.button); //查看app中是否已经存储过账号密码,有的话就直接显示出来 boolean isremember=pref.getboolean( "remember_password" , false ); if (isremember){ string account=pref.getstring( "account" , "" ); string password=pref.getstring( "password" , "" ); accountedit.settext(account); passwordedit.settext(password); checkbox.setchecked( true ); } button.setonclicklistener( new view.onclicklistener() { @override public void onclick(view view) { string account=accountedit.gettext().tostring(); string password=passwordedit.gettext().tostring(); //此处设置的账号为“admin”,密码为“123” if (account.equals( "admin" )&&password.equals( "123" )){ //如果记住密码被选中,那么就将账号密码存储起来 //如果没有被选中,那么将存储的账号密码清空 if (checkbox.ischecked()){ editor.putboolean( "remember_password" , true ); editor.putstring( "account" ,account); editor.putstring( "password" ,password); } else { editor.clear(); } //最后千万不要忘记使用commit将添加的数据提交 editor.commit(); //简单的跳转界面 intent intent= new intent(mainactivity. this ,nextactivity. class ); startactivity(intent); finish(); } else { //如果账号密码错误,就跳出toast提示,并且清空存储的账号密码 toast.maketext(mainactivity. this , "账号或密码错误!" ,toast.length_long).show(); editor.clear(); editor.commit(); } } }); } } |
activity_main:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
<tablelayout xmlns:android= "http://schemas.android.com/apk/res/android" xmlns:tools= "http://schemas.android.com/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" android:stretchcolumns= "1" tools:context= ".mainactivity" > <tablerow> <textview android:textsize= "20sp" android:text= "账号:" android:textcolor= "#000" android:layout_height= "wrap_content" /> <edittext android:id= "@+id/account" android:hint= "请输入你的账号" /> </tablerow> <tablerow> <textview android:textsize= "20sp" android:text= "密码:" android:textcolor= "#000" android:layout_height= "wrap_content" /> <edittext android:id= "@+id/password" android:hint= "请输入你的密码" android:password= "true" /> </tablerow> <tablerow> <checkbox android:id= "@+id/remember_password" android:layout_height= "wrap_content" android:layout_gravity= "center" /> <textview android:textsize= "20sp" android:text= "记住密码" android:layout_height= "wrap_content" /> </tablerow> <tablerow> <button android:id= "@+id/button" android:layout_span= "2" android:text= "确定" android:textsize= "25sp" /> </tablerow> </tablelayout> |
nextactivity:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import android.app.activity; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.view.menu; import android.view.menuitem; import android.view.window; public class nextactivity extends activity { @override protected void oncreate(bundle savedinstancestate) { super .oncreate(savedinstancestate); requestwindowfeature(window.feature_no_title); setcontentview(r.layout.activity_next); } } |
activity_next:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?xml version= "1.0" encoding= "utf-8" ?> <linearlayout xmlns:android= "http://schemas.android.com/apk/res/android" android:layout_width= "match_parent" android:layout_height= "match_parent" android:orientation= "vertical" android:gravity= "center_vertical" > <textview android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:text= "登陆成功!" android:textsize= "30sp" android:layout_gravity= "center_horizontal" /> </linearlayout> |
希望本文所述对大家学习android程序设计有所帮助。