SharedPreferences

1. 保存简单的数据

2. getPreferences 保存,内部文件名称默认为 MainActivity.xml,跟类名保存一致

    //getPreferences
    private void testGetPreferences() {
        SharedPreferences shp = getPreferences(MODE_PRIVATE);
        SharedPreferences.Editor editor = shp.edit();
        editor.putInt("NUMBER", 200);
        editor.apply();
        int x = shp.getInt("NUMBER", 0);
        Log.i(TAG, "onCreate: " + x);
    }

3. getSharedPreferences 保存,内部文件名称为 MY_DATA.xml

   //getSharedPreferences
    private void testGetSharedPreferences() {
        SharedPreferences shp = getSharedPreferences("MY_DATA", MODE_PRIVATE);
        SharedPreferences.Editor editor = shp.edit();
        editor.putInt("NUMBER", 1990);
        editor.apply();
        int x = shp.getInt("NUMBER", 0);
        Log.i(TAG, "onCreate: " + x);
    }

4. 简单类的封装

public class MyData {
    private Context context;

    MyData(Context context) {
        this.context = context;
    }

    public void save(int value) {
        String name = context.getResources().getString(R.string.my_data);
        SharedPreferences sp = context.getSharedPreferences(name, Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sp.edit();
        String myKey = context.getResources().getString(R.string.my_key);
        editor.putInt(myKey, value);
        editor.apply();
    }

    public int load() {
        String name = context.getResources().getString(R.string.my_data);
        SharedPreferences sp = context.getSharedPreferences(name, Context.MODE_PRIVATE);
        String myKey = context.getResources().getString(R.string.my_key);
        return sp.getInt(myKey, context.getResources().getInteger(R.integer.def_value));
    }
}

5. 引用资源文件

    <string name="my_data">my_data</string>
    <string name="my_key">my_key</string>
    <integer name="def_value">0</integer>

6. 调用测试

public class MainActivity extends AppCompatActivity {
    private String TAG = "MyTag";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        MyData myData = new MyData(getApplicationContext());//不能传递this //Activity 销毁,造成内存泄露
        myData.save(123321);
        int number = myData.load();
        Log.i(TAG, "number: " + number);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hanyang Li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值