Передача HashMap объекта между активами (Android studio) - PullRequest
0 голосов
/ 21 октября 2018

Я создаю простое приложение, используя базу данных Google FireBase FireStore, и у меня возникла небольшая проблема.Я создаю HashMap объекта, а затем передаю HashMap второму виду деятельности, но это вызывает сбой моего приложения.

Вот мой класс объектов с именем "Oddil":

public class Oddil {
private String oddilCislo;
private String oddilJmeno;
private String oddilBarva;

public Oddil(String oddilCislo, String oddilJmeno, String oddilBarva) {
    this.oddilCislo = oddilCislo;
    this.oddilJmeno = oddilJmeno;
    this.oddilBarva = oddilBarva;
}

А вот мой файл MainActivity.java:

public class MainActivity extends AppCompatActivity {

FirebaseFirestore db = FirebaseFirestore.getInstance();

HashMap<String, Oddil> oddilHashMap = new HashMap<>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    TextView laJmeno = (TextView) findViewById(R.id.laJmeno);
    laJmeno.setText(getIntent().getStringExtra("jmeno"));

    final ImageButton tlDeti = (ImageButton) findViewById(R.id.tlDeti);
    ImageButton tlUklid = (ImageButton) findViewById(R.id.tlUklid);
    ImageButton tlOlymp = (ImageButton) findViewById(R.id.tlOlymp);

    tlDeti.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {       //tlDetiOnClickListener
            tlDeti.setClickable(false);
            oddilHashMap.clear();

            Animation scale = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.scale);
            v.startAnimation(scale);

            db.collection("dzarda").document("testtabor").collection("oddily")
                    .get()
                    .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                        @Override
                        public void onComplete(@NonNull Task<QuerySnapshot> task) {
                            if (task.isSuccessful()) {
                                for (QueryDocumentSnapshot document : task.getResult()) {
                                    String oddilCislo = document.getId();
                                    String oddilJmeno = document.getString("jmeno");
                                    String oddilBarva = document.getString("barva");
                                    oddilHashMap.put(oddilCislo, new Oddil(oddilCislo, oddilJmeno, oddilBarva));
                                }
                                Intent intent = new Intent(MainActivity.this, DetiActivity.class);
                                intent.putExtra("jmeno",getIntent().getStringExtra("jmeno"));
                                intent.putExtra("oddily", oddilHashMap);
                                startActivity(intent);
                                overridePendingTransition(R.anim.fade_in_start, R.anim.fade_out_start);
                                tlDeti.setClickable(true);
                            } else {
                                tlDeti.setClickable(true);
                            }
                        }
                    });
        }
    });

Кажется, проблема в этой строке

intent.putExtra("oddily", oddilHashMap);

, как, например, когда я ставлю 2 косые черты перед строкой,приложение не вылетает.

У кого-нибудь есть идея, почему я не могу передать HashMap своему второму действию?Спасибо за все ответы, я действительно ценю это.

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