当前位置:   article > 正文

Android 使用Sharedpreference存储数据_preference 安卓studio

preference 安卓studio

        在Android中,很多应用都需要存储一些参数,例如在天气app中,在某一次使用时用户添加了若干个城市,当用户下一次点开时也希望之前设置的城市会保存在手机中,以方便直接获取信息。这个时候就需要用到 SharedPreference 类的辅助,利用它存储一些键值对(Key-Value)参数。SharedPreference类时Android提供的一个轻量级的存储类,特别适用于存储软件的各项参数。

具体步骤:

        1.获取SharedPreference的对象,通过getSharedPreference(String,int)方法。第一个参数用于指定该存储文件的名称,不用加后缀,第二个参数指定文件的操作模式。一般用MODE_PRIVATE 私有方式存储,其他应用无法访问。

        2.设置参数,必须通过一个SharedPreference.Editor对象。存储键值对。只能存放Boolean,Float,Int,Long,String 五种类型。editor.putXxx("key","value")。

        3.通过editor.commit()提交数据。也可以通过clean(),remove()清除。

        4.数据存储在Android系统的 /data/data/"app package name"/shared_prefs 目录下的一个.xml文件。

简单例子实现SharedPreference存储用户信息的代码:

  1. package com.engineer.shizhibin.sharedprefs;
  2. import android.content.SharedPreferences;
  3. import android.support.v7.app.AppCompatActivity;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import android.widget.Button;
  7. import android.widget.EditText;
  8. import android.widget.TextView;
  9. public class MainActivity extends AppCompatActivity {
  10. private SharedPreferences mSpf;
  11. private EditText in;
  12. private Button write;
  13. private Button read;
  14. private TextView out;
  15. @Override
  16. protected void onCreate(Bundle savedInstanceState) {
  17. super.onCreate(savedInstanceState);
  18. setContentView(R.layout.activity_main);
  19. in = (EditText) this.findViewById(R.id.intext);
  20. write = (Button) this.findViewById(R.id.input);
  21. read = (Button) this.findViewById(R.id.output);
  22. out = (TextView) this.findViewById(R.id.showtext);
  23. mSpf = super.getSharedPreferences("test",MODE_PRIVATE);
  24. }
  25. public void writeInfo(View view) {
  26. SharedPreferences.Editor editor = mSpf.edit();
  27. editor.putString("name",in.getText().toString());
  28. editor.commit();
  29. }
  30. public void readInfo(View view) {
  31. String info = mSpf.getString("name","");
  32. out.setText(info);
  33. }
  34. }

布局文件:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:tools="http://schemas.android.com/tools"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent"
  6. android:orientation="vertical"
  7. tools:context="com.engineer.shizhibin.sharedprefs.MainActivity">
  8. <EditText
  9. android:layout_marginTop="20dp"
  10. android:id="@+id/intext"
  11. android:layout_width="match_parent"
  12. android:layout_height="wrap_content"
  13. />
  14. <LinearLayout
  15. android:layout_width="match_parent"
  16. android:layout_height="wrap_content"
  17. android:gravity="center"
  18. android:layout_marginTop="20dp">
  19. <Button
  20. android:id="@+id/input"
  21. android:layout_width="wrap_content"
  22. android:layout_height="wrap_content"
  23. android:text="存储"
  24. android:onClick="writeInfo"/>
  25. <Button
  26. android:id="@+id/output"
  27. android:layout_marginLeft="10dp"
  28. android:layout_width="wrap_content"
  29. android:layout_height="wrap_content"
  30. android:text="读取"
  31. android:onClick="readInfo"/>
  32. </LinearLayout>
  33. <TextView
  34. android:id="@+id/showtext"
  35. android:layout_width="match_parent"
  36. android:layout_height="wrap_content"
  37. android:layout_marginTop="20dp"
  38. android:layout_marginLeft="15dp"
  39. android:text="存储的信息"
  40. android:textSize="25dp"/>
  41. </LinearLayout>

运行结果:

1.输入信息:


2.读取信息:



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/447932?site
推荐阅读
相关标签
  

闽ICP备14008679号