安卓开发之文件存储SharedPreferences

Posted p-t-m

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓开发之文件存储SharedPreferences相关的知识,希望对你有一定的参考价值。

SharedPreferences存储

    不同于文件的存储方式,SharedPreferences是使用键值对的方式来存储数据的,Sharedpreferences还支持多种不同的数据存储类型,但在读取出来的时候,应该保持类型一致,如存入一个String型,读取的时候也是String型的.数据存储在data/data/<package_name>/files下

使用SharedPreferences需要获取到SharedPreferences对象,提供了三种方法来获取

(1)Context中的getSharedPreferences()方法,接受两个参数,一个参数是文件名,一个参数是操作模式,只有一种模式可以用PMODE_PRIVATE

(2)在Activity中的getPreferences()方法,只接受一个参数,会把当前活动类名作为SharedPreferences作为文件名

(3)PreferencesManger类中的GetDefaultSharedPreferences()方法,这是一个静态方法,接受一个参数,并自动使用当前应用程序的包名作为文件名

 

向文件中存储数据的步骤:

(1)调用SharedPreferences对象的edit()方法获取一个SharedPreferences对象

(2)向SharedPreferences对象中添加数据,如添加布尔型的数据就用putBoolean()方法,

(3)调用apply()方法将添加的数据提交,从完成数据存储操作.

从文件中读取数据的步骤:

(1)先使用getSharedPreferences()方法调用文件

(2)再使用相应的get(数据类型)去获取相应的 键值

 

public class MainActivity extends AppCompatActivity {
    EditText username;
    EditText password;
    EditText vip;
    TextView textView;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button saveData = (Button)findViewById(R.id.save_data);
        username = (EditText)findViewById(R.id.username);
        password = (EditText)findViewById(R.id.password);
        vip = (EditText)findViewById(R.id.vip);
        textView = (TextView)findViewById(R.id.textview);
        saveData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                SharedPreferences Preferences = getSharedPreferences("data",MODE_PRIVATE);
                SharedPreferences.Editor editor = Preferences.edit();
                editor.putString("username",username.getText().toString());
                editor.putString("password",password.getText().toString());
                editor.putString("vip",vip.getText().toString());
                editor.apply();
            }
        });
        Button restoreData = (Button)findViewById(R.id.restore_data);
        restoreData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                SharedPreferences pref = getSharedPreferences("data",MODE_PRIVATE);
                String username = pref.getString("username","zhangsan");
                String password = pref.getString("password","123456");
                String vip = pref.getString("vip","SVIP");
                StringBuilder content=new StringBuilder();
                content.append(username+" "+password+" "+vip);
                textView.setText(content.toString());
            }
        });

    }
}

 

以上是关于安卓开发之文件存储SharedPreferences的主要内容,如果未能解决你的问题,请参考以下文章

Android数据持久化之SharedPreference

安卓学习之持久化

安卓开发之文件存储SharedPreferences

安卓开发之文件存储SharedPreferences

用SharedPreference或文件的方式存储数据

Android简单介绍SharedPreference,内部文件,sdcard数据存储