SharedPreferences 提供永久存储本地键值对的功能
1.读取 share.getString("account","");//第二个参数是获取不到内容适合返回的
2.设置 editor.putString("account",accountStr);//可以设置多种基本类型数据
多种操作模式
-
Activity.MODE_PRIVATE,//默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中,可以使用Activity.MODE_APPEND
-
Activity.MODE_WORLD_READABLE,//表示当前文件可以被其他应用读取,
-
Activity.MODE_WORLD_WRITEABLE,//表示当前文件可以被其他应用写入;
-
//如果希望文件被其他应用读和写,可以传入: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其实就是我们存储数据的一个文件名,如果想在新的文件存储数据,就换一个新的文件名