java - 如何使用 Arraylist<Hashmap<String,String>> 中的 bundle 使用 putserializable 获取传递的值

标签 java android arraylist hashmap serializable

我使用以下方法创建了一个列表,它从具有 getter 和 setter 的模型类中获取值。

    int k = model.getChildren().size();
    for(int i=0;i < k;i++) {
        HashMap<String, String> map = new HashMap<String, String>();
        galleryChildModel = model.getChildren().get(i);
        map.put("caption", galleryChildModel.getImagecaption());
        map.put("imageurl", galleryChildModel.getImageurl());
        list.add(map);
    }

然后我使用这个 setOnItemClickListener 将这个值传递给下一个 fragment

       gridchild.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Fragment fragment = new GalleryDetailFragment();
            Bundle bundle = new Bundle();
            bundle.putSerializable("object", list.get(position));
            fragment.setArguments(bundle);
            FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.container_body, fragment);
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();
        }
    });

我正在使用

获取相应 fragment 中的值
   Bundle bundle = this.getArguments();

    if (bundle != null) {
          ArrayList<HashMap<String, String>> maps = (ArrayList<HashMap<String, String>>) bundle.get("object"); // here i cannot cast the value to hashmap or any list. im really stuck here can anyone help me out with this
    }

我得到的值是这样的

bundle [{ 对象=[{ imageurl= http://futhead.cursecdn.com/static/img/15/players/20801.png,caption=Ronaldo .}]}]

如何从中获取数据并设置为 TextView 和 ImageView ....

最佳答案

bundle.putSerializable("object", list.get(position));

存储在“object”下的 Serializable 是 HashMap 而不是 List,因此您应该转换为 Hashmap:

HashMap<String,String> map = (HashMap<String, String>) bundle.getSerializable("object");

关于java - 如何使用 Arraylist<Hashmap<String,String>> 中的 bundle 使用 putserializable 获取传递的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33474026/

相关文章:

java - 将 SecureRandom 和 UUID 转换为 int (java)?

java - GWT 2.0 Eclipse 插件 - 如何在运行/调试时自动启动浏览器?

javascript - React Native 将图像保存到特定位置

java - 使用静态工厂样式构造函数将元素添加到一个或多个静态列表

java - If-Else 字符串

JavaCV警告标志检测?

android - 在 Toolbar 和 Tablayout 之间获取高度

java - 如何向我的应用程序添加背景主题和/或背景壁纸?

Java - ArrayList<> 和 LinkedList<> - 作为标识符的类

java - Arraylist - 使用现有索引的添加 - 添加新值和旧值