0

我的firebase列表适配器如下

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);
    mListview = (ListView) findViewById(R.id.listview);

    mAuth = FirebaseAuth.getInstance();
    //the post list shit is happening here

    DatabaseReference root = FirebaseDatabase.getInstance().getReference();
    FirebaseUser user = mAuth.getCurrentUser();
    DatabaseReference postRef = root.child("users").child(user.getUid().toString()).child("posts");

    ListAdapter adapter = new FirebaseListAdapter<PostList>(this,PostList.class,android.R.layout.simple_list_item_1,postRef) {
        @Override
        protected void populateView(View view, PostList postList, int i) {
            TextView text = (TextView)view.findViewById(android.R.id.text1);
            text.setText(postList.getBody());

        }

    };
    mListview.setAdapter(adapter);

我有一个带有列表视图的普通 xml 和另一个带有卡片视图的 xml

我的问题是我找不到将我的 cardview xml 文件与我的活动相关联的方法,所以我的列表只是继续显示为普通列表,在初始化 firebase 列表适配器时,我发现 R.layout_simple_list_item 我不确定它到底是如何工作的,我用谷歌搜索,没有什么能明确解释为什么我不能直接说R_layout_my_card_view_xml。另外,如果我对这一切都错了,请告诉我。

4

1 回答 1

0

我已经得到了答案,以防万一有人遇到同样的问题,正如 Linxy 明确指出的那样,最好FirebaseRecyclerAdapter使用ListAdapter.

但是,如果您仍然想使用 ListAdapter,那么:

  1. 首先请注意,您不能直接编辑android.R.layout.items,而是创建自己的布局,假设您的布局文件中有 row.xml,R.layout.row用作您的populateView()参数而不是android.R.layout.row,后者不会找到任何内容,因为这些布局文件存储在您的 SDK 文件夹中。

  2. 请考虑回收器适配器,它并不难。

于 2016-08-19T09:57:55.063 回答