Как отправить карту <String, List <String>> через намерение - PullRequest
0 голосов
/ 06 ноября 2018

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

Map<String, List<String>> map = new hashmap<>();

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Вам придется использовать Serializable и передавать карту через намерение. Пример кода отправителя данных выглядит следующим образом:

Map map = new HashMap<String,List<String>>();

List<String> l1 = new ArrayList();

l1.add("HEllo");
l1.add("John");
l1.add("Michael");
l1.add("Jessy");

map.put("Names" , l1);

Intent intent = new Intent("CurrentActivityName".this, "DestinationActivityName".class);

intent.putExtra("Map",(Serializable) map);

startActivity(intent);

Код для Получателя:

Map map = new HashMap<String,List>();
map = (Map) getIntent().getSerializableExtra("Map");

Теперь вы можете получить доступ к данным, используя переменную с именем map .

0 голосов
/ 06 ноября 2018

Создание класса модели, который реализует Сериализуемый

public class DataWrapper implements Serializable {
   private Map map;

   public DataWrapper(Map dataMap) {
      this.map= dataMap;
   }

   public Map getData() {
       return this.map;
   }

}

для фрагмента

    Fragmentt recent = new Fragmentt();
    Bundle bundle = new Bundle();
    Map m = new HashMap<>();
    m.put("data", data);
    bundle.putSerializable("Data", new DataWrapper(m));
    recent.setArguments(bundle);

Получение данных о следующем фрагменте

        DataWrapper dataWrapper = (DataWrapper) bundle.getSerializable("Data");
        map = dataWrapper.getData();

Для занятий

        Intent intent = new Intent(this, Activity.class);
        Map map = new HashMap<>();
        map.put("Data", data);
        intent.putExtra("Data", new DataWrapper(map));
        startActivity(intent);

Получение данных о следующей операции

        Map map;
        DataWrapper dataWrapper = (DataWrapper) getIntent().getSerializableExtra("Data");
        map = dataWrapper.getData();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...