我試圖檢索Firebase值的代碼如下。我的數據庫結構如下: 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) {
}
});
}
我已經嘗試了不同的方法來做到這一點,但我不只是得到任何運氣here..All我得到的是這種錯誤java.lang.ClassCastException:JAVA。 lang.String無法轉換爲java.util.HashMap at com.example.moses.farm.Mystatement $ 1.onDataChange(Mystatement.java:39)指向此HashMap值=(HashMap)child.getValue() ;一行代碼。我一直在這裏堅持了近一個星期,任何人如何得到一個想法,這將真正幫助我
可能是你的孩子返回'String'請檢查它... –
不知道這是否會解決它,但你絕對不應該投到一個HashMap。相反,強制轉換:Map value =(Map )child.getValue()' –