Firebaseでリアルタイムデータベースからデータを取得しようとしましたが、例外であるcannot cast hash map to string
でクラッシュします。私は多くのチュートリアルや選択肢に従っていましたが、私のデータベースは以下のようなもので、私のアプリケーションはキーと値をペアにすることができないため、何もできません。Firebaseからデータを取得中にAndroidアプリケーションがクラッシュする
私にこれを手伝ってください。私は自分のコードとデータベースのスクリーンショットを以下に添付しました。前もって感謝します。
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);
}
}
});
}
}
logcat出力を追加できますか? – Mohamed