W mojej aplikacji ma dwie zakładki, jedna to Przypomnienie, a druga to Zadanie zakończone.ListView w zakładce przesunięcia nie jest aktualizowany, chyba że nastąpi ponowne uruchomienie.
Gdy przycisk przełączania kliknięciu, chcę to przenieść listę ukończonym zadaniu.
Pomysł są:
- Get sprawdzenia identyfikatora wiersza z sqlite
- pobierania danych na podstawie identyfikatora z Przypomnienie tabeli i wstawić do uzupełnionej tabeli.
- Metoda Call Retrieve w zakładce Completed.
Ale po kliknięciu przycisku przełącznika i przesunięciu do pozycji Zakończono, nadal jest pusta. Po wyjściu z aplikacji i przesunięciu palcem do karty wyświetlają się tylko te dane.
Jak mogę od razu pokazać dane w zakładce Completed, gdy zamiast machnięcia opuścić aplikację i ponownie otworzyć? Dzięki
AllAdapter (Przypomnienie)
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
Zakończony Tab
CompleteAdapter
Jeśli używasz list do wyświetlania danych, upewnij się, że wywołałeś metodę notifyDataSetChanged() na adapterze listy, aby zaktualizować widoki za pomocą nowych danych. –
Zamiast przenosić dane z jednej tabeli do drugiej, utwórz tylko jedną tabelę zadań, która będzie miała kolumnę boolowską mówiącą zakończoną lub nie. podczas przełączania wystarczy zaktualizować to pole z tabeli. gdzie jest twój kod? –
@AmrutBidri proszę sprawdzić – Hoo