Я создаю простое приложение, используя базу данных 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 своему второму действию?Спасибо за все ответы, я действительно ценю это.