第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用 SharedPreferences 保存和加載不起作用

使用 SharedPreferences 保存和加載不起作用

慕田峪7331174 2022-10-12 16:03:12
我已經(jīng)嘗試使用 sharedpreferences 來(lái)保存我的 ToDoList,但不幸的是我很難讓它工作。這是我的代碼:@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);              loadData();              ...    }    private void loadData() {        if (initialStart) {            SharedPreferences sharedPreferences = getSharedPreferences("shared preferences", MODE_PRIVATE);            Gson gson = new Gson();            String json = sharedPreferences.getString("task lisk", null);            Type type = new TypeToken<ArrayList<Record>>() {            }.getType();            AddItemActivity.listItems = gson.fromJson(json, type);            initialStart = false;        }        if (AddItemActivity.listItems == null) {            AddItemActivity.listItems = new ArrayList<>();        }        if (adapter == null) {            adapter = new ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_list_item_1, AddItemActivity.listItems);        }        adapter.notifyDataSetChanged();    }    public void saveData() {        SharedPreferences sharedPreferences = getSharedPreferences("todo list", MODE_PRIVATE);        SharedPreferences.Editor editor = sharedPreferences.edit();        Gson gson = new Gson();        String json = gson.toJson(AddItemActivity.listItems);        editor.putString("task list", json);        editor.apply();    } @Override    protected void onPause() {        super.onPause();    }我創(chuàng)建了一個(gè)單獨(dú)的 AddItem 布局,并在其中創(chuàng)建了一個(gè) ArrayList,這就是我使用 AddItemActivity.listItems 調(diào)用它的原因。
查看完整描述

2 回答

?
蕭十郎

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊

你沒(méi)有KEY在你的SharedPreferences


您需要在保存和檢索數(shù)據(jù)時(shí)使用相同的密鑰SharedPreferences


當(dāng)您從SharedPreferences您使用的"task lisk"密鑰獲取數(shù)據(jù)并且當(dāng)您將數(shù)據(jù)保存在 中時(shí)SharedPreferences,您已經(jīng)使用了task list


像這樣


private void loadData() {


        if (initialStart) {

            SharedPreferences sharedPreferences = getSharedPreferences("todo list", MODE_PRIVATE);

            Gson gson = new Gson();

            String json = sharedPreferences.getString("task_list", null);

            Type type = new TypeToken<ArrayList<Record>>() {

            }.getType();


            AddItemActivity.listItems = gson.fromJson(json, type);

            initialStart = false;

        }

        if (AddItemActivity.listItems == null) {

            AddItemActivity.listItems = new ArrayList<>();

        }


        if (adapter == null) {

            adapter = new ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_list_item_1, AddItemActivity.listItems);

        }

        adapter.notifyDataSetChanged();

    }


    public void saveData() {

        SharedPreferences sharedPreferences = getSharedPreferences("todo list", MODE_PRIVATE);

        SharedPreferences.Editor editor = sharedPreferences.edit();

        Gson gson = new Gson();

        String json = gson.toJson(AddItemActivity.listItems);

        editor.putString("task_list", json);

        editor.apply();

    }


查看完整回答
反對(duì) 回復(fù) 2022-10-12
?
呼喚遠(yuǎn)方

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊

您的SharedPreference姓名必須相同才能存儲(chǔ)和檢索數(shù)據(jù)。

 SharedPreferences sharedPreferences = getSharedPreferences("todo list", MODE_PRIVATE);

您正在使用此名稱進(jìn)行存儲(chǔ),但在檢索時(shí)它是不同的。所以改變

 SharedPreferences sharedPreferences = getSharedPreferences("shared preferences", MODE_PRIVATE);

SharedPreferences sharedPreferences = getSharedPreferences("todo list", MODE_PRIVATE);


查看完整回答
反對(duì) 回復(fù) 2022-10-12
  • 2 回答
  • 0 關(guān)注
  • 186 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)