Hashmap作为片段的参数

Sam*_*lPS 4 android hashmap android-fragments

我有一个带有ExpandableList的片段,其内容由a提供HashMap<String,List<String>>.这HashMap<String,List<String>>填充了Fragment的Activity,我需要将它传递给片段.

要做到这一点,我打算做一个片段交易,但我发现了问题:

在片段的方法"newInstance"中,当设置Bundle的参数时,没有放置HashMap的方法.

例如:

Bundle args = new Bundle();
args.putInt(ARG_PARAM1,index); //method .putHashmap doesn't exist.
Run Code Online (Sandbox Code Playgroud)

那么,我怎样才能将我的hashmap传递给Fragment呢?请为此提供解决方案.谢谢

Roh*_*5k2 17

要传递HashMap,请执行此操作

MyFragment fr = new MyFragment(); // Replace with your Fragment class
Bundle bundle = new Bundle();
bundle.putSerializable("hashmap",mMap);
fr.setArguments(bundle);
Run Code Online (Sandbox Code Playgroud)

要检索这样做

HashMap<String,List<String>> mMap = new HashMap<String,List<String>>();
Bundle b = this.getArguments();
if(b.getSerializable("hashmap") != null)
   mMap = (HashMap<String,List<String>>)b.getSerializable("hashmap");
Run Code Online (Sandbox Code Playgroud)