2017-05-20 36 views
0

我的应用使用自定义FirebaseListAdapter。我已经创建AreaGridAdap.java,自定义FirebaseListAdapter中的“无法转换类型对象”错误

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

帮我解决这个错误。

回答

2

此错误消息表示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" 
} 
+0

救了我的一天...:)...我有一个问题,你能帮我吗? – Simon

+0

我使用FirebaseListAdapter从数据库中获取值并将其显示在gridView中。我需要为GridView设置“OnItemClickListener”,并且当一个项目被点击时,应该用活动中显示的栅格项目打开新的活动。帮助我的intents和putExtras。 – Simon

+0

对于与此不相关的另一个问题,您需要发布另一个问题,以便Frank或其他用户可以回答。 –

相关问题