我的应用使用自定义 FirebaseListAdapter。我创建了AreaGridAdap.java,
public class AreaGridAdap {
String gridArea;
public AreaGridAdap(){
}
public AreaGridAdap(String gridArea) {
this.gridArea = gridArea;
}
public String getGridArea() {
return gridArea;
}
}
这是我的FirebaseListAdapter,
final FirebaseListAdapter<AreaGridAdap> firebaseListAdapter = new FirebaseListAdapter<AreaGridAdap> (AreaGridActivity.this,
AreaGridAdap.class,
R.layout.area_grid,
databaseReference) {
@Override
protected void populateView(View v, AreaGridAdap model, int position) {
areaTextView = (TextView) v.findViewById(R.id.areaGridText);
areaTextView.setText(model.getGridArea());
}
};
我第一次使用默认FirebaseListAdapter
并且工作正常。但是当我使用自定义FirebaseListAdapter
时,我的应用程序崩溃了,我收到了我的错误消息:
com.google.firebase.database.DatabaseException: 无法将 java.lang.String 类型的对象转换为 trickandroid.fulllogin.AreaGridAdap
帮我解决这个错误。
此错误消息表示 databaseReference
下的数据结构与您的代码不匹配。看起来您的数据结构如下所示:
-K....1: "First value"
-K....2: "Second value"
-K....3: "Third value"
虽然您的代码是为处理此结构而制作的:
-K....1: {
gridArea: "First value"
}
-K....2: {
gridArea: "Second value"
}
-K....3: {
gridArea: "Third value"
}