我試圖做一個listfragment來顯示二十個項目。就目前而言,只有列表中的最後一項顯示在列表中的所有二十個項目中。我一直在尋找listfragments的例子,我不知道什麼是錯的。僅顯示最後一個項目的Android ListFragment重複
這是一個擴展CourseFragment類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));
}
}
這是從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;
}
而且在MainActivity的OnCreate:
@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();
}
}
這裏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;
}
如果需要其他代碼來解決這個問題,請告訴我。非常感謝你的幫助!
你能告訴courseArrayAdapter –
的構造你得到mCourse.tostring相同的值可以請你告訴我它是什麼打印 –
已更新包含 – Roc47HS