我想根據其「狀態」用2個不同的數據組填充2個不同的ListView。我目前的代碼運行時沒有錯誤,但我的ListView沒有被填充。我有多個完整或不完整狀態的測試數據。Android - 如何檢索一個WHERE條件的數據庫行?
Java代碼:
public class view_to_do_task extends AppCompatActivity {
private dbasemanager2 dBase2;
private ListView taskList;
private ListView taskList2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_to_do_task);
dBase2 = new dbasemanager2(this);
dBase2.openReadable();
taskList = (ListView)findViewById(R.id.incompleteTaskList);
ArrayList<String> dBaseContent = dBase2.retrieveIncompleteRows();
ArrayAdapter<String> arrayAdpt = new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1, dBaseContent);
taskList.setAdapter(arrayAdpt);
taskList2 = (ListView)findViewById(R.id.completeTaskList);
dBaseContent = dBase2.retrieveCompleteRows();
arrayAdpt = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dBaseContent);
taskList.setAdapter(arrayAdpt);
}
找回功能:
public ArrayList<String> retrieveIncompleteRows() {
ArrayList<String> studentRows = new ArrayList<>();
String[] columns = new String[] {"tid", "task", "status"};
String s = "Incomplete";
Cursor cursor = db.query(DB_TABLE, columns, "status=?", new String[] { s }, null, null, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
studentRows.add(cursor.getString(0) + ". " + cursor.getString(1));
cursor.moveToNext();
}
if (cursor != null && !cursor.isClosed()) {
cursor.close();
}
return studentRows;
}
public ArrayList<String> retrieveCompleteRows() {
ArrayList<String> studentRows = new ArrayList<>();
String[] columns = new String[] {"tid", "task", "status"};
String s = "Complete";
Cursor cursor = db.query(DB_TABLE, columns, "status=?", new String[] { s }, null, null, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
studentRows.add(cursor.getString(0) + ". " + cursor.getString(1));
cursor.moveToNext();
}
if (cursor != null && !cursor.isClosed()) {
cursor.close();
}
return studentRows;
}
我現在認爲它的罰款。 –