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として使用するとします。これらのレイアウト ファイルは SDK フォルダーに保存されているため、後者は何も検出しません。populateView()android.R.layout.row

  2. リサイクラーアダプターを検討してください。それほど難しくありません。

于 2016-08-19T09:57:55.063 に答える