Ich habe eine Listview auf meinem HauptfensterAsyncTask Listenansicht
lvItems = (ListView) findViewById(R.id.lvItems);
new GetAsync(this,lvItems).execute();
und mit meinem asyntask mag ich die Daten aus meinem db abrufen und in meiner Listenansicht drücken. Wenn ich meinen Code ausführe, ist meine Sicht leer. Jemand kennt die Lösung dafür?
public class GetAsync extends AsyncTask<Void,ArrayList<Task>,List<Task>> {
private Context context;
private ListView listView;
ArrayAdapter<Task> tasks;
public GetAsync(Context context, ListView listview) {
this.context = context;
this.listView = listview;
}
@Override
protected List<Task> doInBackground(Void... voids) {
TaskDbHelper db = new TaskDbHelper(context);
return db.getTasks();
}
@Override
protected void onPreExecute() {
tasks = (ArrayAdapter<Task>) listView.getAdapter();
}
@Override
protected void onPostExecute(List<Task> tasks) {
tasks.addAll(tasks);
}
}
public List<Task> getTasks()
{
SQLiteDatabase db = this.getWritableDatabase();
String[] columns = new String[] {"id","task","complete"};
String prderBy = "task ASC";
// Cursor cursor = db.query(TaskContract.TaskEntry.TABLE_NAME,columns,null,null,null,null,prderBy,null);
Cursor cursor = db.rawQuery("select * from task where complete = ?",new String[]{"0"});
List<Task> tasks = new ArrayList<>();
while (cursor.moveToNext())
{
Task t = new Task(cursor.getInt(0),
cursor.getString(1)
,cursor.getInt(2));
tasks.add(t);
}
cursor.close();
return tasks;
}
zeigen Sie mir Ihre getTasks() Meth od –
ok ich habe bearbeitet – nodeMan