Передайте HashMap (String, Boolean) в nextActivity, используя Serializable method-Android - PullRequest
0 голосов
/ 11 июня 2018

У меня есть Hashmap, который я хочу передать следующему занятию, все ответы показывают этот метод:1004 *

Я даже дал базовую попытку -:

intent.putExtra("myMap",myMap);

Но он говорит, что не может разрешить метод

Ответы [ 4 ]

0 голосов
/ 12 июня 2018

Это проверено мной и работает-: // Добавить данные

Intent ActivityIntent = new Intent(MainActivity.this, NewActivity.class);
                Bundle bundles = new Bundle();
                bundles.putSerializable("myMap", (Serializable) myMap);
                ActivityIntent.putExtra("bundle",bundles);

// Извлечь данные

 Bundle  bundle = getIntent().getBundleExtra("bundle");
        HashMap<String, Boolean> myMap = (HashMap<String, Boolean>) bundle.getSerializable("myMap");
        if(myMap.get(StringOfItemWhichIsTrue)) {
            Toast.makeText(this, "Works", Toast.LENGTH_SHORT).show();
        }
0 голосов
/ 12 июня 2018

Попробуйте это

 // pass HashMap from one Activity
                Intent intent = new Intent(this, AboutActivity.class);

                HashMap<String, Boolean> map = new HashMap<>();
                map.put("var",true);
                Bundle bun = new Bundle();
                bun.putSerializable("map", map);
                intent.putExtra("bundle",bun);

                startActivity(intent);
                overridePendingTransition(R.anim.slide_from_right, R.anim.nothing);


                // get HashMap from another activity
                Bundle  bundle = getIntent().getBundleExtra("bundle");
                if(bundle != null){
                    HashMap<String,Boolean> map = (HashMap<String, Boolean>) bundle.getSerializable("map");
                    if(map != null){
                        Log.e("bundle",map.get("var")+"");
                    }

                }
0 голосов
/ 12 июня 2018

Попробуйте использовать одноэлементный класс для хранения хэш-карты с помощью метода setter, а затем получите его для другой операции с помощью метода getter.

0 голосов
/ 11 июня 2018

Попробуйте это передать ваши значения, объект должен быть сериализуемым, изменить параметры в соответствии с вашим требованием.

HashMap<String, Boolean> hashMap = new HashMap<String, Boolean>();
hashMap.put("key", "value");
Intent intent = new Intent(this, NextActivity.class);
intent.putExtra("map", (Serializable)hashMap);
startActivity(intent);

И в ваших NextActivity чтобы получить данные попробуйте это

Intent intent = getIntent();
    HashMap<String, Boolean> hashMap = (HashMap<String, Boolean>)intent.getSerializableExtra("map");
    Log.v("HashMapTest", hashMap.get("key"));

Проверьте правильность

Boolean b= hashMap.get("key");

    if(b==true){
    //Your Toast Message
    }

Попробуйте и дайте мне знать, работает ли он для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...