2016-11-19 14 views
0

やって、なぜ私がrecyclerView.setAdapter()

リターンこのエラーの後にrecyclerViewに追加のビューを追加しようとしたとき、

Attempt to invoke virtual method 'boolean android.support.v7.widget.RecyclerView$ViewHolder.shouldIgnore()' on a null object reference 

例コード

... 
recyclerView.setAdapter(mAdapter); 

TextView textView = new TextView(this); 
textView.setText("TEST"); 

recyclerView.addView(textView); 

追加のビューはと比較して異なるでrecyclerViewにすでに表示されているビュー。しかし、私が追加したい追加のビューは、リサイクルビューの権利の最後に表示する必要がありますか?

+0

すべてのリスト項目はtextViewですか? – Swr7der

+0

はい、しかし3行CardViewのTextView –

答えて

0

は、私が思うViewHolderの実装で、そのオブジェクトをバインドする必要があり、問題がある:あなたがクラス

で作られているアダプタにrecyclerviewのアダプタを設定している

アダプタ:アダプタオブジェクトは、アダプタビューとそのビューの基になるデータとの間のブリッジとして機能します。アダプタは、データ項目へのアクセスを提供します。また、アダプタは、データセット内の各項目のビューを作成することも担当します。

アダプタビューでは、既にrecyclerViewアイテムにビューが提供されています。

アダプターから提供されたビューのコンテキスト外のアイテムを挿入しようとすると、ビューがアダプターのコンテキストと同じコンテキストを持たない可能性があるというエラーが表示されます。

したがって、アダプタクラスが提供しているcardviewの形式である必要がありますので、recyclerViewにtextViewを受け入れていません。

+0

私の場合、私はビューアのrootViewのレイアウトパラメータをリセットしていました。 –

0

このエラーは、RecyclerViewが独自のビュー(.onCreateViewHolder()メソッドを参照)を作成するために発生します。ビュー自体を管理するため、そのようなビューを追加することはできません。 RecyclerView(そう呼ばれた理由)は、膨らんだビューを再利用するので、毎回新しいビューを作成する必要はありません。あなたはいくつかのデータオブジェクトを追加し、

関連する問題