zoukankan      html  css  js  c++  java
  • 安卓开发之文件存储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());
                }
            });
    
        }
    }
  • 相关阅读:
    【已解决】Kettle新建数据库连接报错(Mysql,MS Sql Server)
    SQL面试题-练习2
    WIN7bat批处理遍历文件夹,输出当前文件夹下所有文件。
    【已解决】MYSQL安装过程报错,怎么解决?MySQL error 0: Authentication to host 'localhost' for user 'root' using method 'caching_sha2_password' failed with message: Reading from the stream has failed.
    常用外国在线英语词典-单词查询
    Oracle 11g 服务端的安装步骤
    Oracle 查询(SELECT)语句(一)
    Oracle 增删改(INSERT、DELETE、UPDATE)语句
    记录一个 C# 导出 Excel 的坑
    C# 中的浅拷贝与深拷贝
  • 原文地址:https://www.cnblogs.com/p-t-m/p/12885974.html
Copyright © 2011-2022 走看看