J'essaie de faire un listfragment pour afficher vingt éléments. En l'état, seul le dernier élément de la liste est affiché pour les vingt éléments de la liste. J'ai regardé des exemples de listfragments et je ne peux pas dire ce qui ne va pas.Android ListFragment affichant seulement le dernier élément répété
Ceci est de la classe CourseFragment qui s'étend ListFragment:
private List<Course> mCourses;
public CourseFragment() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mCourses = Schedule.get(getActivity()).getSchedule();
CourseArrayAdapter<Course> mAdapter = new CourseArrayAdapter<>(getContext(), android.R.layout.simple_list_item_1, mCourses);
setListAdapter(mAdapter);
for (int i = 0; i < 20; i++) {
Log.d("DEBUGTAG", "Course: " + mCourses.get(i));
}
}
Ceci est du CourseArrayAdapter:
public CourseArrayAdapter(Context context, int resource, List<T> objects) {
super(context, resource, objects);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Log.d("DEBUG", "getView " + position);
LayoutInflater inflater = LayoutInflater.from(getContext());
View mLayout;
if (convertView == null) {
mLayout = inflater.inflate(R.layout.view_course, parent, false);
} else {
mLayout = convertView;
}
T mCourse = getItem(position);
TextView mCourseTextView = (TextView) mLayout.findViewById(R.id.course_textview);
mCourseTextView.setText(mCourse.toString());
return mLayout;
}
Et le onCreate du MainActivity:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager mFragManager = getFragmentManager();
Fragment mFragment = mFragManager.findFragmentById(R.id.main_activity_framelayout);
if(mFragment == null) {
mFragment = new CourseFragment();
mFragManager.beginTransaction().add(R.id.main_activity_framelayout, mFragment).commit();
}
}
Voici les variables d'instance et le constructeur de la classe Course:
private static String sCourseName;
private static int sCourseNum;
private static String sInstructor;
private static String sDescription;
public Course(String mCourseName, int mCourseNum, String mInstructor, String mDescription) {
sCourseName = mCourseName;
sCourseNum = mCourseNum;
sInstructor = mInstructor;
sDescription = mDescription;
}
Si un autre code est nécessaire pour résoudre ce problème, veuillez me le faire savoir. Merci beaucoup pour toute aide!
Pouvez-vous montrer constructeur de courseArrayAdapter –
Avez-vous eu même valeur pour mCourse.tostring pouvez-vous s'il vous plaît me dire quel est-il l'impression –
Mis à jour pour inclure cela – Roc47HS