0

私のフラグメントのonCreateViewメソッドでは、RecyclerViewを含むレイアウトを膨張させています。私は、ビューを参照しようとすると、しかし、私は次の行にNullPointerExceptionが取得:私が間違ってフラグメントにRecyclerViewを追加するときのNullPointerException

mRecyclerView.setLayoutManager(mStaggeredLayoutManager); 

何をしているのですか?あなたはgetActivity.findViewById()を行っている

public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstance){ 
     final StaggeredGridLayoutManager mStaggeredLayoutManager = new StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL); 

     mRecyclerView = (RecyclerView)getActivity().findViewById(R.id.list); 
     mRecyclerView.setLayoutManager(mStaggeredLayoutManager); 

     mRecyclerView.setHasFixedSize(true); //Data size is fixed - improves performance 
     mAdapter = new TravelListAdapter(getActivity()); 
     mRecyclerView.setAdapter(mAdapter); 
     return inflater.inflate(R.layout.start_fragment,container,false); 
} 
+0

があなたのエラーログを提供してくださいどうなるのかです。 – pRaNaY

答えて

2

、機能しません。

は、ここに私のコードです。ビューを作成したばかりですが、アクティビティにはまだ添付されていません。これを行うには、ビューのビューではなくフラグメントのビューでビューを見つけなければなりません。

まず、フラグメントのビューを膨らませてから、inflatedView.findViewById(R.id.list)を実行します。

例:

public View onCreateView(...){ 
    View inflatedView = inflater.inflate(R.layout.start_fragment, container, false); 

    mRecyclerView = (RecyclerView) inflatedView.findViewById(R.id.list); 

    return inflatedView; 
} 
+0

ありがとう、今は動作しています – minion

+0

問題ありません。 :-) –

0
 @Override 
     public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
     final StaggeredGridLayoutManager mStaggeredLayoutManager = new StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL); 
mRecyclerView = (RecyclerView) view.findViewById(R.id.list); 
mRecyclerView.setLayoutManager(mStaggeredLayoutManager); 
mRecyclerView.setHasFixedSize(true); 
mAdapter = new TravelListAdapter(getActivity()); 
mRecyclerView.setAdapter(mAdapter); 
super.onViewCreated(view, savedInstanceState); 

     } 

これは私が

関連する問題