android之SharedPreferences

本文介绍如何使用SharedPreferences实现用户登录信息的自动保存与取消。通过代码示例详细解释了如何读取和保存用户名、密码,并实现自动登录功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要是记录一些零碎的知识点

SharedPreferences 最容易理解的Android存储技术之一,主要是用来实现用户的自动登录,记录当前音乐播放的歌曲、进度等少量信息,可以理解为web里的cookies,但是不是cookies.

演示一下怎么使用SharedPreferences 实现记住用户登录信息,需要一个登录界面,有个用户名输入框,一个密码输入框,一个登录按钮,没东西,代码就不贴了


看具体代码实现:

private SharedPreferences sharedPreferences;
//        sharedPreferences = this.getSharedPreferences("userInfo", Context.MODE_PRIVATE);
        sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
		//读取用户名密码,登录  ,用户点击退出后就不是自动登录
        String username = sharedPreferences.getString("userName", "");
        String password = sharedPreferences.getString("password", "");
        //The name of the preference to retrieve.   Value to return if this preference does not exist.
        if (sharedPreferences.getBoolean("AUTO_ISCHECK", false)) {

            //自动登录,进入主页面

        } else {
           /*进入初始化登录页面阶段
			初始化页面可以自动填入用户名密码的信息
			mLoginName.setText(username);(EditText)
			mPasswordView.setText(password);
		   */
            init();
        }
		
		//用户点击登录时,收集用户信息,我默认是自动登录,没有做那个checkbox
		//保存用户名密码 自动登录
            SharedPreferences.Editor editor = sharedPreferences.edit();
            editor.putString("userName", loginName);
            editor.putString("password", password);
            editor.putBoolean("AUTO_ISCHECK", true);
            editor.commit();
如何取消自动登录

//取消用户的自动登录,可以在应用里做一个退出按钮,在里面写上下面的就好了,下次就需要输入用户名了
	SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putBoolean("AUTO_ISCHECK",false);
        editor.commit();
这个TextInputLayout效果特别好嘛,尤其是我们这种不会做美化的

 <android.support.design.widget.TextInputLayout android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <EditText android:id="@+id/password" android:layout_width="match_parent"
                    android:layout_height="wrap_content" android:hint="@string/prompt_password"
                    android:imeActionId="@+id/login"
                    android:imeActionLabel="@string/action_sign_in_short"
                    android:imeOptions="actionUnspecified" android:inputType="textPassword"
                    android:maxLines="1" android:singleLine="true" />

            </android.support.design.widget.TextInputLayout>
需要在build.gradle添加依赖
dependencies {
//原先的别删哈,只是添加这一条
    compile 'com.android.support:design:23.1.0'
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值