Ich versuche, Daten aus meiner Echtzeitdatenbank in Firebase abzurufen, aber es stürzt mit Ausnahme cannot cast hash map to string
ab. Ich habe viele Tutorials und Alternativen verfolgt, aber nichts funktioniert, weil meine Datenbank so aussieht wie unten gezeigt und meine Anwendung nicht in der Lage ist, Schlüssel und Wert zu paaren.Android-Anwendung stürzt beim Abrufen von Daten aus Firebase ab
Bitte helfen Sie mir dabei. Ich habe meinen Code und den Datenbank-Screenshot unten angehängt. Vielen Dank im Voraus.
public class AlaCarte extends AppCompatActivity {
ListView lv;
String arr[]=new String[]{"Paneer Butter Masala","Chicken Butter Masala","Chicken Biriyani"};
ArrayList al=new ArrayList();
ArrayList food=new ArrayList();
Button btn;
Firebase mref;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ala_carte);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle("Alacarte!!");
lv=(ListView)findViewById(R.id.listView);
btn=(Button)findViewById(R.id.button8);
DatabaseReference databaseReference= FirebaseDatabase.getInstance().getReference("Food items");
databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {
Iterable<com.google.firebase.database.DataSnapshot> iterable=dataSnapshot.getChildren();
Iterator<com.google.firebase.database.DataSnapshot> it=iterable.iterator();
while (it.hasNext())
{
com.google.firebase.database.DataSnapshot dataSnapshot1=it.next();
String catnane=dataSnapshot1.getKey();
Iterable<com.google.firebase.database.DataSnapshot> iterable2=dataSnapshot1.getChildren();
Iterator<com.google.firebase.database.DataSnapshot> it2=iterable2.iterator();
while (it2.hasNext())
{
String proname=dataSnapshot1.getKey();
String price=(String)dataSnapshot1.getValue();
String item=proname+" "+price;
food.add(item);
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
ArrayAdapter<String> aa=new ArrayAdapter<String>(AlaCarte.this,android.R.layout.simple_list_item_multiple_choice,food);
lv.setAdapter(aa);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
CheckedTextView checkedTextView = ((CheckedTextView) view);
//checkedTextView.setChecked(!checkedTextView.isChecked());
if (checkedTextView.isChecked()) {
checkedTextView.setChecked(false);
al.remove(adapterView.getItemAtPosition(i));
} else {
checkedTextView.setChecked(true);
al.add(adapterView.getItemAtPosition(i));
}
}
});
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (al.isEmpty()) {
Snackbar.make(view, "Select check boxes to place your order", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
} else {
Intent i = new Intent(AlaCarte.this, ConfirmAlacarte.class);
i.putExtra("mylist", al);
startActivity(i);
}
}
});
}
}
Können Sie Ihre Logcat-Ausgabe hinzufügen? – Mohamed