Android:SharedPreferences 存储

前言

Android 系统提供了轻量级的数据存储方式——SharedPreferences 存储。它屏蔽了对底层文件的操作,通过为程序人员提供简单的编程接口,实现以最简单的方式永久保存数据。这种方式主要是对少量的数据进行保存,比如对应用程序的配置信息、手机应用主题、游戏的玩家积分等进行保存。

获得 SharedPreferences 对象

SharePreferences 接口位于 android.content 包中,用于使用键值(key-value)对的方式来存储数据。该类主要用于基本类型,例如 boolean、float、int、long、String。在应用程序结束后,数据仍旧会保存。数据是以 XML 文件格式保存在 Android 手机系统下的 “/data/data/<应用程序包>/share_prefs” 目录中,该文件被称为 Shared Preference (共享的首选项)文件。
通常有两种方式获得 SharedPreferences 对象:
①、使用 getSharedPreferences() 方法获取
②、向 SharedPreferences 文件存储数据

读取 SharedPreferences 文件中存储的数据

(1)调用 SharedPreferences 类的 edit() 方法获得 SharedPreferences.Editor 对象。
(2)向 SharedPreferences.Editor 对象中添加数据。
(3)使用 commit() 方法提交数据,从而完成数据存储操作。

举例说明:读取 SharedPreferences 文件中存储的数据

public class MainActivity extends AppCompatActivity {

    //设置登录账号密码
    private final String mr = "mr";
    private final String mrsoft = "mrsoft";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final EditText usernameET = findViewById(R.id.edit1);
        final EditText passwordET = findViewById(R.id.edit2);
        final Button login = findViewById(R.id.login);

        //获取 Shared Preferences 对象,MODE_PRIVATE 只能本应用进行访问
        final SharedPreferences sp = getSharedPreferences("mrsoft", MODE_PRIVATE);
        
        /****初始化****/
        String username = sp.getString("username", null);   
        String password = sp.getString("password", null);   
        
        if(username!=null && password!=null) {
        	/*******************实现自动登录功能**************************/
            if(username.equals(mr) && password.equals(mrsoft)) {
                //通过 Intent 跳转到启动界面
                Intent intent = new Intent(MainActivity.this, MessageActivity.class);
                startActivity(intent);
            }
        } else {
            /***第一次登录:手动登录并储存账号和密码*******************/
            login.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //获取输入账号及密码
                    String in_username = usernameET.getText().toString();
                    String in_password = passwordET.getText().toString();

                    //获取 Editor 对象
                    SharedPreferences.Editor editor = sp.edit();
                    if(in_username.equals(mr) && in_password.equals(mrsoft)) {
                    	//保存账号、密码
                        editor.putString("username", in_username); 
                        editor.putString("password", in_password); 
                        editor.commit();    //提交保存信息

						//登录成功-->跳转
                        Intent intent = new Intent(MainActivity.this, MessageActivity.class);
                        startActivity(intent);
                        Toast.makeText(MainActivity.this, "已保存账号密码", Toast.LENGTH_LONG).show();
                    } else {
                    	//重新输入
                        Toast.makeText(MainActivity.this, "账号或密码错误", Toast.LENGTH_LONG).show();
                    }
                }
            });
        }
    }
}

你可能感兴趣的:(Android,android,java,apache)