2015-11-02 1 views
1

Я создал список, используя следующее, которое получает значение из класса модели, у которого есть геттер и сеттер.Как получить valus, прошедший с использованием putserializable с использованием пакета из Arraylist <Hashmap <String, String >>

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

 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(); 
     } 
    }); 

я получаю значение в соответствующем фрагменте, используя

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 [{object = [{ imageurl = http://futhead.cursecdn.com/static/img/15/players/20801.png,caption=Ronaldo.}]}]

как получить данные из этого и устанавливается в TextView и ImageView ....

+0

какой тип 'list'? – Blackbelt

+0

ArrayList > list; // Я не могу отличить это значение, он показывает непроверенный листинг и дает ошибку –

+0

Тогда вам нужно отдать его в ArrayList, а не в HashMap – Blackbelt

ответ

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

Ваш Сериализуемый хранится под «объектом» является HashMap не Перечислите, так что вы должны бросить к Хашмапу:

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

есть еще одна проблема в этом .... список продолжает повторяться, когда я перехожу к следующему действию, и возвращение - это единственный способ остановить его. –

+0

Что вы подразумеваете под повторителем. Вам нужно пояснить это. – mikeD

+0

Спасибо, но я решил его, добавив адаптер == null перед исполнением списка, и он работает –

Смежные вопросы