나는 모두 삭제 단추가 있고 목록보기에있는 모든 항목을 삭제할 때마다 목록보기가 길지는 않지만 그대로 유지됩니다. 새 항목을 만들거나이 활동을 다시 시작할 때만 다시로드됩니다. 내 코드에 로그를 인쇄했는데 delete 메소드가 호출되기 전에 목록보기가 다시로드되는 것 같습니다. 내 코드는 다음과 같습니다.모든 항목을 삭제 한 후 목록보기를 다시로드하는 방법은 무엇입니까?
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DBHelper db = new DBHelper(this);
final ListView listView = (ListView) findViewById(R.id.listView);
TextView empty = (TextView) findViewById(R.id.empty);
ArrayList<Inventory> listArray = new ArrayList<>();
listArray.clear();
listArray = db.read();
if (listArray.size() == 0) {
empty.setText("No Items");
} else {
empty.setText("");
}
ListViewAdapter customAdapter = new ListViewAdapter(listArray);
customAdapter.notifyDataSetChanged();
listView.setAdapter(customAdapter);
Button add_button = (Button) findViewById(R.id.button);
add_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
addNewItem(view);
}
});
Button button_deleteAll = (Button) findViewById(R.id.button_deleteAll);
button_deleteAll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
deteleAll();
DBHelper db = new DBHelper(MainActivity.this);
final ListView listView = (ListView) findViewById(R.id.listView);
TextView empty = (TextView) findViewById(R.id.empty);
ArrayList<Inventory> listArray = new ArrayList<>();
listArray.clear();
listArray = db.read();
Log.v("arraysize:", String.valueOf(listArray.size()));
if (listArray.size() == 0) {
empty.setText("No Items");
} else {
empty.setText("");
}
ListViewAdapter customAdapter = new ListViewAdapter(listArray);
customAdapter.notifyDataSetChanged();
listView.setAdapter(customAdapter);
}
});
}
메소드 deleteAll()은 SQLite의 모든 데이터를 삭제합니다. 이 메서드보다 먼저로드 된 것이 아니라이 메서드가 호출 된 후 listview를 다시로드하는 방법을 알고 싶습니다.
이전에 사용 했었지만 작동하지 않았습니다. –