2016-07-03 3 views
0

Я новичок в recyclerview, используя его с картой, может кто-нибудь сказать мне, как его инициализировать?RecyclerView in Fragment initialize

Я вижу, что я должен как-то положить его в onCreateView, а не в ViewCreated, мой код:

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

return inflater.inflate(R.layout.fragment_genres, container, false); 

и код утилизатор, что я использовал на операцию, но теперь я хочу, чтобы вызвать его на фрагменты

recyclerView = (RecyclerView) getActivity().findViewById(R.id.recyclerView); 
    recyclerView.setHasFixedSize(true); 
    layoutManager = new LinearLayoutManager(getActivity()); 
    recyclerView.setLayoutManager(layoutManager); 

трассировка данных:

JSON>get>DataModel>Adapter>Recycler>CardView 

Когда я его в onCreatedView, Ло GCAT говорит:

java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference 

ответ

5

Так же, как этот

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, 
        @Nullable Bundle savedInstanceState) { 
View v = inflater.inflate(R.layout.fragment_genres, container, false); 
recyclerView = (RecyclerView) v.findViewById(R.id.recyclerView); 
recyclerView.setHasFixedSize(true); 
layoutManager = new LinearLayoutManager(getActivity()); 
recyclerView.setLayoutManager(layoutManager); 
return v; 
+0

Спасибо, мое приложение работает правильно сейчас;) – ramzixp

+0

Можете ли вы принять мой ответ? – Stefan

+0

Да, но через 7 минут, срок – ramzixp

1

Попробуйте эту

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
View v = inflater.inflate(R.layout.fragment_genres, container, false); 
recyclerView = (RecyclerView) getActivity().findViewById(R.id.recyclerView); recyclerView.setHasFixedSize(true); layoutManager = new LinearLayoutManager(getActivity()); recyclerView.setLayoutManager(layoutManager); 
    return v; 
0

Здесь я успешно интегрирован Recyclerview в фрагменте под названием MainFragment item click for recycler view инициализация фрагмента в основной деятельности нет. используйте это для ссылки на фрагмент

public class MainActivity extends AppCompatActivity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super. onCreate(savedInstanceState); 
setContentView(R . layout . activity_main); 
if(savedInstanceState == null) { 
getSupportFragmentManager() . beginTransaction() 
.replace(R . id . container, MainFragment . newInstance()) 
.commit();