《第一行代码》 6.3 SharedPreferences存储

    特点:采用键值对的方式来存储,可存储不同类型数据。

6.3.1 如何存

1. Context类 中的 getSharedPreferences()方法

     getSharedPreferences( 参数1, 参数2)

     -参数1:文件名称(不存在就重新创建一个)

     -参数2:操作模式,只有MODE_PRIVATE,含义:只有当前应用程序才能对其进行读写

2. Activity类 中的 getPreferences()方法

    getPreferences(参数1)

     -参数1:操作模式。(自动为文件命名:当前活动的类名)

3. PreferenceManager类 中的 getDefaultSharedPreferences()方法

    getDefaultSharedPreferences(参数1)

     -参数1:Context参数。(自动为文件命名:当前应用程序的包名)

     -存储数据的3个步骤:

         |-调用SharedPreferences对象的edit()方法,得到SharedPreferences.Editor对象

         |-向SharedPreferences.Editor对象添加数据(布尔:putBoolean(),字符串:putString()...)

         |-apply()方法,提交数据,完成存储操作。

4. 范例:SharedPreferences存储

     -布局layout-main.xml

    <Button
        android:id="@+id/save_data"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Save Data"/>

    -主活动 MainActivity.java

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button savaData=(Button) findViewById(R.id.save_data);
        savaData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                SharedPreferences.Editor editor=getSharedPreferences("data",MODE_PRIVATE).edit();
                editor.putString("name","Tom");
                editor.putInt("age",7);
                editor.putBoolean("married",false);
                editor.apply();
            }
        });

    }
}

    -运行结果

6.3.2 怎么读?

1. 提供了一系列getXXX()方法:getInt(),getString()...

    语法:getXXX( 参数1,参数2)

      -参数1:键

      -参数2:默认值(当没有值时 返回的值)

2. 范例:SharedPreferences读取

     - layout_main.xml(添加一个按键)

    <Button
        android:id="@+id/restore_data"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Restore Data"/>

     - MainActivity.java(添加以下代码)

 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 name=pref.getString("name","");
                int age =pref.getInt("age",0);
                boolean married =pref.getBoolean("married",false);
                Log.d("MainActivity","name is "+name);
                Log.d("MainActivity","age is "+age);
                Log.d("MainActivity","married is "+married);
            }
        });

    - 结果

 

猜你喜欢

转载自blog.csdn.net/qq_39915585/article/details/79753055
6.3