여기 상황이 있습니다.Android : ListFragment 두 번 상품로드
현재 작업 표시 줄을 사용하여 내 탭 중 하나에서 목록 조각을 사용하고 있습니다. 3 개의 탭이 있습니다. tab1, tab2, tab3 .. listfragment는 tab2에 있고 일부 Fragment는 tab1에 있습니다. 따라서 앱을 시작할 때 defualt는 ont tab1입니다. tab2를 클릭하면 데이터베이스에서 무언가를로드합니다. 하나의 행만 가져옵니다. 현재 데이터베이스에 저장되어 있으므로 tab2를 다시 클릭 한 다음 tab1을 다시 클릭하면 갑자기 내 목록에 동일한 값의 항목이 두 개 있습니다. 중복되거나 두 번로드되었습니다. 데이터베이스에 항목이 하나뿐입니다.
어떻게 내 조각이 목록을 두 번로드하지 못하게합니까?이 listfragment를 두 번로드하면 db에있는 내용이로드되고 listFragment에서 이전 값이 제거됩니다. 이 문제에 대한 나의 이론은 처음 tab2를 클릭했을 때 tab2 이후에 tab1 den을 클릭하면 이전 항목이 삭제되지 않고 조각이로드 될 때 이전 항목에 추가됩니다.
내가이를 방지 할 방법.. 여기
은 샘플 사진입니다, UI가 결함을 마음하지만 단지 그 항목이 두 번 조각을로드 두 배있어 상상하지 않습니다. 당신이 "PatientFragment
"를 다시 시작하면
이
이것은Cursor c = dbHelper.retrieveAllData(PATIENT_TABLE);
c.moveToFirst();
while(!c.isAfterLast())
{
Patients p = new Patients();
Log.d("patient id",Integer.toString(c.getInt(c.getColumnIndex("_id"))));
p.setId(c.getString(c.getColumnIndex("_id")));
p.setFname(c.getString(c.getColumnIndex("firstname")));
p.setMi(c.getString(c.getColumnIndex("middlename")));
p.setLname(c.getString(c.getColumnIndex("lastname")));
p.setAddr(c.getString(c.getColumnIndex("address")));
p.setHosp_name(c.getString(c.getColumnIndex("hosp_name")));
p.setHosp_room(c.getString(c.getColumnIndex("hosp_room")));
p.setAge(c.getInt(c.getColumnIndex("age")));
p.setMed_history(c.getString(c.getColumnIndex("med_history")));
p.setPat_status(c.getInt(c.getColumnIndex("status")));
patient_list.add(p);
c.moveToNext();
}
dbHelper.close();
Collections.sort(patient_list, new Comparator<Patients>() {
public int compare(Patients o1, Patients o2) {
return o1.getLname().compareToIgnoreCase(o2.getLname());
}
});
PatientAdapter patientListAdapter = new PatientAdapter(getActivity(),R.layout.patient_list_item_fragment, patient_list);
setListAdapter(patientListAdapter);
registerForContextMenu(getListView());
참고, 내가 먼저 (응용 프로그램을 시작한 후) TAB2를 클릭하면 <의미 -의 좋아요를하고 난 TAB1 덴 TAB2를 다시 클릭하면 내가 .. 두 번로드 무슨 뜻 이잖아 코드 – lemoncodes
후 관련 조각 죄송합니다. 게시하지 않으 셨습니다. – Blackbelt
네의 – lemoncodes