在我的應用程序中,它有兩個選項卡,一個是提醒,另一個是已完成任務。刷卡選項卡中的ListView未更新,除非重新啓動
當點擊切換按鈕,我希望它在列表中移動到已完成任務。
的思路是:
- 獲得從源碼
- 選中的行ID檢索基於從提醒表ID的數據,並插入到已完成表。
- 已完成選項卡中的呼叫檢索方法。
但是,當我點擊切換按鈕並滑動到完成,它仍然是空的。我退出應用程序後,滑動到Tab,只顯示數據。
如何在完成標籤刷新而不是退出應用程序並重新打開時立即顯示數據?感謝
AllAdapter(提醒)
holder.toggle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (((ToggleButton)v).isChecked()) {
int getPosition = (Integer) v.getTag(); // Here we get the position that we have set for the checkbox using setTag.
search.get(getPosition).setSelected(((ToggleButton) v).isChecked());
int id= search.get(getPosition).getID();
mdb = new MyDatabaseHelper(v.getContext());
database = mdb.getReadableDatabase();
Cursor cursor = database.rawQuery("SELECT * FROM " + MyDatabaseHelper.TABLE__TASK + " WHERE ID = ? ", new String[]{id+""}, null);
if (cursor != null && cursor.getCount() > 0) {
while (cursor.moveToNext()) {
String allTask = cursor.getString(cursor.getColumnIndex("Title"));
String name = cursor.getString(cursor.getColumnIndex("Name"));
String allTime = cursor.getString(cursor.getColumnIndex("Time"));
String allDate = cursor.getString(cursor.getColumnIndex("Date"));
insertDataToCompleteTab(id,name,allTask,allTime,allDate); // insert to another table
}
}
} else {
int getPosition = (Integer) v.getTag(); // Here we get the position that we have set for the checkbox using setTag.
search.get(getPosition).setSelected(((ToggleButton) v).isChecked());
}
}
});
CompletedTask
retrieveList(name);
public void retrieveList(String name) {
Toast.makeText(getActivity(),name,Toast.LENGTH_SHORT).show();
search.clear();
database = mdb.getReadableDatabase();
Cursor cursor = database.rawQuery("SELECT * FROM " + MyDatabaseHelper.TABLE_TASKCOMPLETED + " WHERE Name = ? ", new String[]{name}, null);
if (cursor != null && cursor.getCount() > 0) {
while (cursor.moveToNext()) {
int iD = cursor.getInt(cursor.getColumnIndex("ID"));
String allTask = cursor.getString(cursor.getColumnIndex("Title"));
String allTime = cursor.getString(cursor.getColumnIndex("Time"));
String allDate = cursor.getString(cursor.getColumnIndex("Date"));
if (adapter != null) {
adapter.add(iD, allTask, allTime, allDate);
listview.setAdapter(adapter);
adapter.getCount();
// check();
}
}
} else {
}
}
AllAdapter
完成標籤
CompleteAdapter
如果您使用列表來顯示數據,請確保您在列表的適配器上調用notifyDataSetChanged(),以便使用新數據更新視圖。 –
而不是將數據從一個表移動到另一個表,只創建一個任務列表,其布爾列表示完成與否。而切換隻是從表中更新該字段。你的代碼在哪裏? –
@AmrutBidri請檢查 – Hoo