安卓利用SharedPreference对象存储和读取用户信息(Kotlin语言)

安卓利用SharedPreference对象存储和读取用户信息(Kotlin语言),第1张

安卓利用SharedPreference对象存储和读取用户信息(Kotlin语言)

SharedPreference对象存储用户信息和读取信息过程
  • 一、实现要点
  • 二、实现效果图
  • 三、实现步骤
    • 1、创建新项目,在Mainactivity布局添加按钮,并设置跳转登录界面的点击事件
    • 2、创建一个登录Activity,设置输入用户信息的控件,一个记住密码的CheckBox和按钮
    • 3、编写登录kotlin代码,实现个人信息存与取
  • 四、 总结


一、实现要点

(1)在使用记住密码模式下,通过SharedPreference对象存储用户输入的用户名及密码。
(2)当从Mainactivity退出到登录界面时,读取SharedPreference对象中存储数据,将用户名和密码自动写到登录Activity。
(3)当用户输入错误密码或者账号时,d出提示窗,选择取消则返回,选择重新输入则清空输入框内容

二、实现效果图

三、实现步骤 1、创建新项目,在Mainactivity布局添加按钮,并设置跳转登录界面的点击事件

Mainactivity布局代码如下:



    

Mainactivity.kt代码如下:

package com.example.test03

import android.app.alertDialog
import android.content.Intent
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        return_login.setOnClickListener {
            val intent = Intent(this, log_on::class.java)
            this.startActivity(intent)
        }
    }


}
2、创建一个登录Activity,设置输入用户信息的控件,一个记住密码的CheckBox和按钮

登录界面布局代码如下:




    
        


        

        

        

        

            

        

        
3、编写登录kotlin代码,实现个人信息存与取
package com.example.test03


import android.app.alertDialog
import android.content.Context
import android.content.Intent
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import kotlinx.android.synthetic.main.activity_log_on.*


class log_on : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_log_on)
        var rem=getPreferences(Context.MODE_PRIVATE)
        val isrember=rem.getBoolean("lg_rememberPsd",false)
        if(isrember){
            //将密码和账号都设到文本框里
            val account=rem.getString("username","")
            val password=rem.getString("psd","")
            lg_username.setText(account)
            lg_password.setText(password)
            lg_rememberPsd.isChecked = true
        }
        lg_login.setOnClickListener(object : View.OnClickListener {
            override fun onClick(v: View?) {
                var username = lg_username.getText().toString()//账号
                var psd = lg_password.getText().toString()//密码
                if(username=="123"&&psd=="123"){
                    val editor=rem.edit()
                    if(lg_rememberPsd.isChecked){
                        //把account和password对应的值都存入SharedPreferences文件中并提交
                        editor.putBoolean("lg_rememberPsd",true)
                        editor.putString("username",username)
                        editor.putString("psd",psd)

                    }else{
                        //将SharedPreferences文件中的数据全部清除掉
                        editor.clear()
                    }
                    editor.apply()
                    val intent = Intent(applicationContext, MainActivity::class.java)
                    startActivity(intent)
                    finish()
                }else{
                    val dialog = alertDialog.Builder(this@log_on)
                    dialog.setTitle("提示")
                    dialog.setIcon(R.drawable.exit)
                    dialog.setMessage("账号或密码错误")
                    dialog.setCancelable(false)
                    //重新输入,清空输入框内容
                    dialog.setPositiveButton(
                        "重新输入"
                    ) { dialog, which ->
                        lg_username.setText("")
                        lg_password.setText("")
                    }
                    dialog.setNegativeButton("取消", null)
                    dialog.show()
                }

            }
        })

    }
}
四、 总结

首先使用getPreferences()方法得到SharedPreferences对象之后,然后向SharedPreferences文件中存储数据。主要分为3个步骤:
(1) 调用SharedPreferences对象的edit()方法获取一个SharedPreferences.Editor对象。
(2) 向SharedPreferences.Editor对象中添加数据,比如添加一个布尔型数据就使用
putBoolean()方法,添加一个字符串则使用putString()方法,以此类推。
(3) 调用apply()方法将添加的数据提交,从而完成数据存储 *** 作。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5660002.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存