如何通过片段中的捆绑参数传递 HashMap<String、Object>?



我试图通过参数传递HashMap。但我在通过getSeralizable方法获取哈希映射时得到了空哈希映射(我放入的哈希映射不是空的,大小为11)。以下是我的代码片段。

public static FirstPageFragment newInstance(boolean is_pending, HashMap<String, Object> result_map) {
FirstPageFragment fragment = new FirstPageFragment();
Bundle args = new Bundle();
args.putBoolean(ARG_PARAM1, is_pending);
args.putSerializable(ARG_PARAM2, result_map);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
Bundle b=getArguments();
isPending = b.getBoolean(ARG_PARAM1);
mResultMap = (HashMap<String, Object>)b.getSerializable(ARG_PARAM2);
}
}

我们可以这样做吗?如果不能这样做,有没有其他方法可以这样做。

试试这个:

Bundle extras = new Bundle();
extras.putSerializable("YourHashMap",hashMap);
intent.putExtras(extras);

以及在另一个活动中

Bundle bundle = this.getIntent().getExtras();
if(bundle != null) {
hashMap = bundle.getSerializable("YourHashMap");
}

https://developer.android.com/reference/java/util/HashMap.html

HashMap___

扩展AbstractMap实现映射,可克隆,可串行化

您可以这样做,因为HashMap实现是可序列化的

使用putExtra(String key, Serializable obj)插入HashMap,在另一个"活动"中使用getIntent().getSerializableExtra(String key),但您需要将返回值强制转换为HashMap

相关内容

最新更新