Я пытаюсь создать ListView во фрагменте в ViewPager в AppCompatActivity. В AppCompatActivity все элементы представления являются wrappend в CoordinatorLayout. Потому что я использовал координаторLayout. Я должен использовать RecylerView. Я стараюсь следовать обучению с сайта developer.android.com , но мое приложение остановилось после моего журнала. Это мой код в myFragment, где приложения остановились.
import android.app.Activity; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; //... @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_city_list, container, false) mRecyclerView = (RecyclerView) view.findViewById(android.R.id.list); mLayoutManager = new LinearLayoutManager(this.getActivity()); Log.d("debugMode", "The application stopped after this"); mRecyclerView.setLayoutManager(mLayoutManager); mAdapter = new RecyclerAdapter(getNames()); mRecyclerView.setAdapter(mAdapter); return view; } //...
Использовать это
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_city_list, container, false) // Replace 'android.R.id.list' with the 'id' of your RecyclerView mRecyclerView = (RecyclerView) view.findViewById(android.R.id.list); mLayoutManager = new LinearLayoutManager(this.getActivity()); Log.d("debugMode", "The application stopped after this"); mRecyclerView.setLayoutManager(mLayoutManager); mAdapter = new RecyclerAdapter(getNames()); mRecyclerView.setAdapter(mAdapter); return view; }
Вы должны вызвать методы setLayoutManager
& setAdapter
( соответственно ) в Recyclerview
.
Кроме того,
mRecyclerView = (RecyclerView) view.findViewById(android.R.id.list);
Вам не следует использовать android.R.id.list
, поскольку вы не используете ListFragment
. Замените его id
вашего Recyclerview
( как в вашем XML-макете ).
Вы установили android.R.id.list как идентификатор recyclerview? В противном случае вы должны установить id для recyclerview в XML-файле, например:
android:id="@+id/recyclerview"
И измените эту строку
mRecyclerView = (RecyclerView) view.findViewById(android.R.id.list);
в
mRecyclerView = (RecyclerView) view.findViewById(R.id.recyclerview);