Android-SharedPreferences 读取写入

SharedPreferences 提供永久存储本地键值对的功能

1.读取  share.getString("account","");//第二个参数是获取不到内容适合返回的

2.设置  editor.putString("account",accountStr);//可以设置多种基本类型数据

 

多种操作模式

  1. Activity.MODE_PRIVATE,//默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中,可以使用Activity.MODE_APPEND

  2. Activity.MODE_WORLD_READABLE,//表示当前文件可以被其他应用读取,

  3. Activity.MODE_WORLD_WRITEABLE,//表示当前文件可以被其他应用写入;

  4. //如果希望文件被其他应用读和写,可以传入:Activity.MODE_WORLD_READABLE+Activity.MODE_WORLD_WRITEABLE

 

package com.example.handleproject;

import androidx.appcompat.app.AppCompatActivity;

import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class SharePreerenceActivity extends AppCompatActivity {
    private TextView account;
    private  TextView pass;
    private Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_share_preerence);
        account=findViewById(R.id.account);
        pass=findViewById(R.id.pass);
        btn=findViewById(R.id.button);
        SharedPreferences share=getSharedPreferences("setting",MODE_PRIVATE);
        String accStr=share.getString("account","");//第二个参数是获取不到内容适合返回的
        String pwdStr=share.getString("pass","");
        account.setText(accStr);
        pass.setText(pwdStr);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String accountStr=account.getText().toString();
                String passStr=pass.getText().toString();
                if(accountStr.equals("admin")&&passStr.equals("123456")){
                    //1、打开Preferences,名称为setting,如果存在则打开它,否则创建新的Preferences
                    SharedPreferences settings = getSharedPreferences("setting", MODE_PRIVATE);
                    //2、让setting处于编辑状态
                    SharedPreferences.Editor editor = settings.edit();
                    //3、存放数据
                    editor.putString("account",accountStr);
                    editor.putString("pass",passStr);
                    //4、完成提交
                    editor.commit();
                    Toast.makeText(SharePreerenceActivity.this,"保存成功",Toast.LENGTH_SHORT).show();

                }
                else{
                    Toast.makeText(SharePreerenceActivity.this,"请输入admin&&123456",Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
}

 

androidStudio查看存储的文件地址

做了上面的操作,其实他的本质是个文件存储操作,可以在编辑器查看最终存储的内容以及位置

在菜单栏 view->tool-window->device-file-explorer里面可以打开文件管理器

在data/data/[包名]、shared_refs 里面可以找到文件setting.xml和我们做的存储操作

SharedPreferences settings = getSharedPreferences("setting", MODE_PRIVATE);

红色字体部分是一样的,也就是表示setting其实就是我们存储数据的一个文件名,如果想在新的文件存储数据,就换一个新的文件名

 

你可能感兴趣的:(android)