2016-04-08 2 views
2

私のアプリには2つのタブ(AとB)があるビューページャがあります。最初のタブ、つまりAにはリストビューがあります。リスト内のいずれかの項目をクリックすると、別のリストで新しい断片(Cと呼ぶ)が開きます。タブBにはリストビューもあります。Android:Visible viewpagerタブには前のタブのarraylistデータが含まれています

タブBのリストとフラグメントCに含まれるリストの項目は同じです。つまり、両方のリストの各項目は同じクラスです。私はリストを作成するカスタムアダプターでリサイクラービューを使用しています。タブBとフラグメントCの両方のリストは同じオブジェクト型であるため、同じアダプタ、つまりこの目的のために(CarListAdapter.class)を使用しています。

私が直面している問題は、フラグメントCを開いた後、タブAに戻り、タブBが表示されるように右にスワイプし、タブBのアイテムをクリックするとnullポインタ例外が発生するフラグメントCarListFragment.classにはまだフラグメントCのデータがあり、タブBはありません(リストは正しく表示されますが、正しく動作しないクリックのみです)

このアダプターの2つのインスタンスが存在するため、これはうまく動作します。しかし、(CarListAdapterC.classとCarListAdapterB.classのように)全く同じコードを持つ2つの異なるアダプタを使用すると、コードは正常に動作します。

私は立ち往生しています。なぜこのようなことが起こっているのか説明してください。

答えて

-1

私は最終的に解決策を見つけました。それは私のところでは本当に愚かでした。私はスタティックフィールドをRecyclerViewアダプタに持っていました。それらを取り除くことは魅力的だった。

+0

私は静的なフィールドを持っていないし、again.aは動作しませんサポートライブラリのどのバージョンを使用して教えてください?あなたはあなたのアダプタコードと私はどのようにそれを使用することができますか? – Nahid

+0

23.0.1、あなたはあなたのコードで質問を作成することができます!何か問題があるはずです。必要に応じてコードを投稿します。 – varunkr

2

ビューページャーとリサイクラービューを使用しているときに同じ問題が発生しました。私は割り当てを検索し、それが問題であることを知っているので、リサイクラビューadapte rの問題です。

ページャを表示するページを表示するたびに、次のページがデフォルトで表示されます。ここにアダプタが問題を示しています。作成する同じアダプタの異なるインスタンスが同じ場所を指しています。そのため、まだ他のページ項目があります。

私はそれが良いアイデアではないことを知っていますが、別の名前を持つ最初のものと同じ別のアダプタを作成し、次のリストのためにそれを使用して、リストのアダプタを分離しました。

+0

はい、私はそれが動作する別のアダプタを作成する場合は、正確に私が言ったことは正解です。私はCarListAdapterBとCarListAdapterCを作成する場合、私は質問で断片を書いた申し訳ありませんが動作します。私はあなたの答えをupvotedしています。 – varunkr

+0

ねえ、私の問題を見つけた、私の答えを見て、私はあなたが同じ問題を抱えている必要がありますね。 :) – varunkr

関連する問題