日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網(wǎng)站首頁 編程語言 正文

SharedPreferences存儲HashMap和相互轉(zhuǎn)化

作者:Pigerrrr 更新時間: 2022-09-26 編程語言
public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private HashMap<String,PeopleBean> map;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button save_value = findViewById(R.id.save_value);
        Button change_value = findViewById(R.id.change_value);
        Button take_value = findViewById(R.id.take_value);

        save_value.setOnClickListener(this);
        change_value.setOnClickListener(this);
        take_value.setOnClickListener(this);

        //將hashmap存儲,比如用sp來存儲
        map = new HashMap<>();
        PeopleBean peopleBean1 = new PeopleBean("小明",19);
        PeopleBean peopleBean2 = new PeopleBean("小紅",18);
        PeopleBean peopleBean3 = new PeopleBean("小張",18);

        map.put("key1",peopleBean1);
        map.put("key2",peopleBean2);
        map.put("key3",peopleBean3);

    }

    //將 HashMap 用sp存儲起來
    private void saveHashMap(HashMap<String,PeopleBean> map){

        Gson gson = new Gson();
        String json = gson.toJson(map);

        //步驟1:創(chuàng)建一個SharedPreferences對象
        SharedPreferences sharedPreferences= getSharedPreferences("config", Context.MODE_PRIVATE);
        //步驟2: 實例化SharedPreferences.Editor對象
        SharedPreferences.Editor editor = sharedPreferences.edit();
        //步驟3:將獲取過來的值放入文件
        editor.putString("config",json);
        editor.commit();


    }


    //將json格式的字符串從sp中取出來轉(zhuǎn)化為hashMap
    private HashMap<String,PeopleBean> getHashMap(){

        SharedPreferences sharedPreferences= getSharedPreferences("config", Context .MODE_PRIVATE);
        String json =sharedPreferences.getString("config","");
        HashMap<String,PeopleBean> map;

        Type type = new TypeToken<HashMap<String, PeopleBean>>(){}.getType();
        Gson gson = new Gson();
        map = gson.fromJson(json, type);

        return map;
    }

    //改變其中一個值:比如 改變年齡
    private void changeValue(String name,int age){
        HashMap<String, PeopleBean> hashMap = getHashMap();
        Collection<PeopleBean> values = hashMap.values();
        for (PeopleBean bean : values) {
            if (TextUtils.equals(bean.getName(),name)){
                bean.setAge(age);
            }
        }
        saveHashMap(hashMap);
    };


    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.save_value:
                saveHashMap(map);
                break;
            case R.id.change_value:
                changeValue("小明",30);

                break;
            case R.id.take_value:
                HashMap<String, PeopleBean> hashMap = getHashMap();
                break;
            default:
                break;

        }
    }
}

原文鏈接:https://blog.csdn.net/TianciZhu/article/details/107525041

欄目分類
最近更新