-2

私のフラグメントのRecyclerviewは私にこのエラーを与えていますが、私はそれを理解できませんでした。この問題については多くの質問がありますが、今のところ私の問題は解決していません。ここでアダプタが接続されていません。フラグメントのレイアウトエラーをスキップします

は私のフラグメントからのコードの一部です:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

    View view = inflater.inflate(R.layout.fragment_home, container, false); 
    Toolbar toolbar = (Toolbar) view.findViewById(R.id.toolbar); 
    ((AppCompatActivity)getActivity()).setSupportActionBar(toolbar); 

    recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view); 

    initCollapsingToolbar(); 

    RecyclerView.LayoutManager mLayoutManager = new GridLayoutManager(getActivity(), 2); 
    recyclerView.setLayoutManager(mLayoutManager); 
    recyclerView.addItemDecoration(new GridSpacingItemDecoration(2, dpToPx(10), true)); 
    recyclerView.setItemAnimator(new DefaultItemAnimator()); 
    recyclerView.setAdapter(adapter); 

    prepareSectors(); 

    try { 
     Glide.with(this).load(R.drawable.cover).into((ImageView) view.findViewById(R.id.backdrop)); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    return view; 
    } 
+0

エラーが何であるか、それを私はエラーがクリアされていると思います –

+0

@SriMaharshiManchem投稿: 'E/RecyclerView:?いいえアダプタ付属し;レイアウトをスキップする ' –

+1

' adapter!= null'ですか? –

答えて

1

あなたはRecyclerViewにそれを設定する前に、あなたのadapterinstanceを作成しませんでした。

RecyclerView.LayoutManager mLayoutManager = new GridLayoutManager(getActivity(), 2); 
    recyclerView.setLayoutManager(mLayoutManager); 
    recyclerView.addItemDecoration(new GridSpacingItemDecoration(2, dpToPx(10), true)); 
    recyclerView.setItemAnimator(new DefaultItemAnimator()); 

    // Your adapter initialization here 
    adapter = new YourAdapter(getActivity(), ....); 
    recyclerView.setAdapter(adapter); 

UPDATE:

渡さcontextからLayoutInflaterを取得します。以下のようにあなたのSectorAdapterコード部分を更新します。

public Context mContext; 
public List<Sector> sectorList; 
LayoutInflater layoutInflater; 

public SectorAdapter(Context mContext, List<Sector> sectorList) { 
    this.mContext = mContext; 
    this.sectorList = sectorList; 
    layoutInflater = LayoutInflater.from(mContext); 
} 

@Override 
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View itemView = layoutInflater.inflate(R.layout.sector_card, parent, false); 
    return new MyViewHolder(itemView); 
} 

onViewCreated()

@Override 
public void onViewCreated(View view, Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 

    sectorList = new ArrayList<>(); 
    prepareSectors(); 

    RecyclerView.LayoutManager mLayoutManager = new GridLayoutManager(getActivity(), 2); 
    recyclerView.setLayoutManager(mLayoutManager); 
    recyclerView.addItemDecoration(new GridSpacingItemDecoration(2, dpToPx(10), true)); 
    recyclerView.setItemAnimator(new DefaultItemAnimator()); 

    adapter = new SectorAdapter(getActivity(), sectorList); 
    recyclerView.setAdapter(adapter); 
} 

希望のおRecyclerViewコードを移動してみてくださいこれはあなたのアダプタには任意のコードはありません〜

+0

フラグメントのOnCreateメソッド内でアダプタを初期化しました。あなたの提案の後、私はOnCreateViewに移動しましたが、同じエラーが発生しました。 –

+0

完全なフラグメントコードを投稿してください。 – FAT

+0

getActivity()をコンテキストとして渡しました....アダプタ= new YourAdapter(getActivity()、....) ; – FAT

1

のに役立ちます。したがって、アダプターを実装し、インスタンスをrecyclerViewに渡す必要があります。

RecyclerView.LayoutManager mLayoutManager .... 
.... 
// Your adapter initialization here 
adapter = new someAdapter(....); 
recyclerView.setAdapter(adapter); 

これが役立ちます。

関連する問題