Android OS sqlite 데이터베이스에서 가져온 데이터를 표시하고 있습니다. 항목을 클릭하면 항목이 성공적으로 삭제됩니다. 그러나 나는 문제가 생기고, 또는 작업 후 목록보기를 업데이트하고 있습니다.삭제 작업 후 목록보기 업데이트
다음은 연락처를 삭제하는 코드입니다.
public void updateList(){
myList.refreshDrawableState();
myList.invalidateViews();
this.notifyDataSetChanged();
}
내가 세 가지 방법이 내가 새로 고치려고이 방법에 포함 그러나 아무도 나를 위해 일한 :
deleteBtn = (Button)v.findViewById(R.id.deleteBtn);
deleteBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(), "Deleted: " + c.getId() + " " + c.getName(), Toast.LENGTH_SHORT).show();
adapter.deleteContact(c.getId());
updateList();
}
});
는 아래 updateList() 방법이다. 내가 어떻게 이걸 이룰 수 있겠 어?
편집 : 나는 내 코드이 해결책이 될 것이라고 생각을 변경하지만 중 하나가 작동하지 않았다 :
DbAdapter 클래스 삭제 방법() :
public boolean deleteContact(int rowId){
getAllContactsList();
return db.delete(DB_TABLE, COLUMN_ID + "=" + rowId, null) > 0;
}
getAllContactsList() :
public List<Contact> getAllContactsList(){
List<Contact> contactList = new ArrayList();
Cursor c = db.query(DB_TABLE, new String [] {COLUMN_ID, COLUMN_FNAME, COLUMN_LNAME}, null, null, null, null, null);
//loop through cursor rows and add to list
if(c.moveToFirst()){
do{
Contact contact = new Contact();
contact.setId(Integer.parseInt(c.getString(0)));
contact.setfName(c.getString(1));
contact.setlName(c.getString(2));
contactList.add(contact);
}while(c.moveToNext());
}
return contactList;
}public List<Contact> getAllContactsList(){
List<Contact> contactList = new ArrayList();
Cursor c = db.query(DB_TABLE, new String [] {COLUMN_ID, COLUMN_FNAME, COLUMN_LNAME}, null, null, null, null, null);
//loop through cursor rows and add to list
if(c.moveToFirst()){
do{
Contact contact = new Contact();
contact.setId(Integer.parseInt(c.getString(0)));
contact.setfName(c.getString(1));
contact.setlName(c.getString(2));
contactList.add(contact);
}while(c.moveToNext());
}
return contactList;
}
을
연락처를 삭제하기 전에 새 커서를 가져 오는 것으로 생각하여 이에 따라 목록을 업데이트합니다. 불행히도 아무런 차이가 없었습니다. 어떤 아이디어?
'this.notifyDataSetChanged()'로이 작업을 수행하고 있었지만 어떤 이유로 든 목록과 아무런 차이가 없었습니다! – Javacadabra