次のコードでfirebase値を取得しようとしています。次のように私のデータベース構造は次のとおりです。私はこれを行うためのさまざまな方法を試してみましたが、私はこのエラーjava.lang.ClassCastExceptionがあり得るhere..All私はただの運を得ることはありません java.lang.Stringはjava.util.HashMapにキャストできませんエラー
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mystatement);
listview = (ListView) findViewById(R.id.listview);
adapter=new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,list);
listview.setAdapter(adapter);
dref= FirebaseDatabase.getInstance().getReference();
dref= dref.child("Dog Expenditure");
dref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot child : dataSnapshot.getChildren()) {
HashMap<String, Object> value = (HashMap<String, Object>) child.getValue();
String amount = value.get("amount").toString();
String item = value.get("item").toString();
// This will print out amount and item
System.out.println(amount + item);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
:javaの。 lang.Stringはjava.util.HashMapにキャストできませんを指すを指す com.example.moses.farm.Mystatement $ 1.onDataChange(Mystatement.java:39)HashMap value =(HashMap)child.getValue() ;コード行。私はそれを行うための正しい方法は、最初に作成することです。このコード
あなたの子供が 'String'を返すかもしれません。それを確認してください... –
これが修正されるかどうかは不明ですが、HashMapにキャストしてはいけません。代わりにキャスト: 'Map value =(Map )child.getValue()' –