将 HashMap<Integer, List<Integer>> 放入 savedInstanceState

Put HashMap<Integer, List<Integer>> in savedInstanceState

我在 Android 的 savedInstanceState 中添加值时遇到问题。我试图在互联网上找到解决方案,但我似乎无法找到解决方案。也许你们中的一些人可能知道问题出在哪里。我需要将 HashMap> 放入 savedInstanceState,并检索该 onCreate 方法。有没有人遇到并解决了这个问题? 谢谢你的时间。

您可以使用 putSerializable。例如

savedInstanceState.putSerializable("KEY", hashMapInstance);

尝试:

private HashMap<String, String> savedInstanceMap = new HashMap<>();


@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
    savedInstanceMap.put("selectedFuel_type_Id", selectedFuel_type_Id);
    outState.putSerializable("savedBundle", savedInstanceMap);
    super.onSaveInstanceState(outState);
}

 @Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (savedInstanceState != null) {
        savedInstanceMap = (HashMap<String, String>) savedInstanceState.getSerializable("savedBundle");
        selectedFuel_type_Id = savedInstanceMap.get("selectedFuel_type_Id");
    }