簡體   English   中英

Flutter:如何使用 SharedPreference 獲取列表<string> ?</string>

[英]Flutter : How to use SharedPreference to get List<String>?

我在我的頁面中創建了一個 initState,並在每次打開此頁面時調用 callData 來獲取 favId(類型:列表)。 但是,當應用程序啟動時,我的編譯器會顯示以下錯誤消息:

_TypeError (type 'List<String>' is not a subtype of type 'String')

這是我的 getData 的 function:

getData(favId) async {
    SharedPreferences pref = await SharedPreferences.getInstance();
    return pref.getStringList(favId);
  }

這也是我的 saveData 的 function:

void saveData() async {
    SharedPreferences pref = await SharedPreferences.getInstance();
    pref.setStringList("id", favId);
  }

如何解決此問題,並且每次在應用程序中打開此頁面時都可以調用 getData? 謝謝:)

"id"是一個字符串,您需要將一個List<String>存儲到setStringList

如果要將項目添加到列表中,請執行以下步驟:

List<String> ids = await getData(favId);
ids.add("id");
saveData(ids, favId);

然后將saveData()更改為

void saveData(ids, favId) async {
    SharedPreferences pref = await SharedPreferences.getInstance();
    pref.setStringList(ids, favId);
}

getData()

List<String> getData(favId) async {
    SharedPreferences pref = await SharedPreferences.getInstance();
    return pref.getStringList(favId);
}

如果要在 SharedPreferences 中保存和檢索 List,則使用相同的鍵來保存和檢索值。

這是一個簡單的例子,

const favKey = 'favoriteKey';

要保存數據,

void saveData(String favKey, List<String> favorites) async {
    SharedPreferences pref = await SharedPreferences.getInstance();
    pref.setStringList(favKey,favorites);
  }

要檢索數據,

getData(String favKey) async {
    SharedPreferences pref = await SharedPreferences.getInstance();
    return pref.getStringList(favKey);
  }

注意:您需要使用相同的密鑰來使用 SharedPreference 設置和獲取數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM