J'essaie de créer un ListView dans un fragment dans un ViewPager dans un AppCompatActivity. Dans AppCompatActivity, tous les éléments de vue sont enveloppés dans un CoordinatorLayout. Parce que j'ai utilisé le CoordinatorLayout. Je suis obligé d'utiliser RecylerView. J'essaie de suivre la formation de developer.Android.com , mais mon application s'est arrêtée après mon journal. C'est mon code dans myFragment où les applications se sont arrêtées.
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;
}
//...
Utilisez ceci
@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;
}
Vous devez appeler les méthodes setLayoutManager
& setAdapter
( respectivement ) sur Recyclerview
.
Plus,
mRecyclerView = (RecyclerView) view.findViewById(Android.R.id.list);
vous ne devriez pas utiliser Android.R.id.list
, car vous n'utilisez pas une ListFragment
. Remplacez-le par la id
de vous Recyclerview
( comme dans votre mise en page XML ).
avez-vous défini Android.R.id.list comme identifiant Recyclage? sinon, vous devez définir un identifiant pour recyclerview dans le fichier XML, comme ceci:
Android:id="@+id/recyclerview"
et changer cette ligne
mRecyclerView = (RecyclerView) view.findViewById(Android.R.id.list);
à
mRecyclerView = (RecyclerView) view.findViewById(R.id.recyclerview);