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程序设计有所帮助。