Android基础(八):文件存储

SharedPreferences

SharedPreferences完全屏蔽了对文件系统的操作过程,调用SharePreferences中的函数可以实现对数据的保存和读取。

SharedPreferences可以将数据以NVP(名称/值对)形式保存在Android的文件系统。

在使用SharedPreferences前,先定义访问模式

  • 私有(MODE_PRIVATE):仅创建程序有权读取或写入
  • 全局读(MODE_WORLD_READABLE):当前文件可以被其他应用读取
  • 全局写(MODE_WORLD_WRITEABLE):当前文件可以被其他应用写入

public static int MODE = MODE_PRIVATE;   

定义SharedPreferences的名称,在Android文件系统中保存的文件名称,使用SharedPreferences时需要将访问模式和名称作为参数传递到getSharedPreferences()函数,则可获取到SharedPreferences实例。

获取SharedPreferences后,可以通过get<>()函数读取保存在SharedPrederences中的NVP数据。get<>()第一个参数是NVP名称。

通过SharedPreferences.Editor类对SharedPreferences进行修改,调用commit()函数提交内容。

首先准备一些控件用于调试

    private static TextView textView;

    private static int Mode = MODE_PRIVATE; //定义私有模式
    private static final String NAME = "setting";   //自定义文件名
    private SharedPreferences sharedPreferences;
    private RadioGroup radioGroup;
    private EditText editText ;
    private Spinner spinner;
    @Override        //设置控件的操作和数据初始化
    protected void onCreate(Bundle savedInstanceState) {    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final ListView listView = findViewById(R.id.listView);
        List list = new ArrayList<>();
        list.add("计算机科学");
        list.add("软件工程");
        list.add("物联网应用");
        ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item ,list);
        final Spinner spinner = findViewById(R.id.spinner);
        spinner.setAdapter(adapter);
        listView.setAdapter(adapter);

        sharedPreferences = getSharedPreferences(NAME,Mode);    //获取实例
        editText = findViewById(R.id.EditText);
        radioGroup = findViewById(R.id.radioGroup);
    }
    @Override
    protected void onStart() {
        super.onStart();
        editText.setText(sharedPreferences.getString("name","Vlad")); //获取数据放到文本输入控件里面
        radioGroup.check(sharedPreferences.getInt("Sex",R.id.Radio_A));         //默认选项是A
        spinner.setSelection(sharedPreferences.getInt("major",0));    //默认第一个专业
    }

    @Override   //在onPause中显示结果
    protected void onPause() {
        super.onPause();
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString("name",editText.getText().toString());     //获取输入的文本信息
        editor.putInt("sex",radioGroup.getCheckedRadioButtonId());  //获取radio选项id内容
        editor.putInt("major",spinner.getSelectedItemPosition());   //获取选择项目的位置
        editor.commit();
    }

SharedPreferences产生的文件保存在/data/ data//shared_prefs目录下的setting.xml

 

你可能感兴趣的:(Android,Java)