Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 异步任务列表视图_Java_Android - Fatal编程技术网

Java 异步任务列表视图

Java 异步任务列表视图,java,android,Java,Android,我的主窗口上有一个列表视图 lvItems = (ListView) findViewById(R.id.lvItems); new GetAsync(this,lvItems).execute(); 使用asyntask,我希望从数据库中检索数据并将其推送到listview中。当我执行代码时,我的lsitview是空的。有人知道解决办法吗 public class GetAsync extends AsyncTask<Void,ArrayList<Task>,Lis

我的主窗口上有一个列表视图

lvItems = (ListView) findViewById(R.id.lvItems);
    new GetAsync(this,lvItems).execute();
使用asyntask,我希望从数据库中检索数据并将其推送到listview中。当我执行代码时,我的lsitview是空的。有人知道解决办法吗

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);
}
公共类GetAsync扩展了AsyncTask{
私人语境;
私有列表视图列表视图;
阵列自适应任务;
公共GetAsync(上下文上下文,ListView ListView){
this.context=上下文;
this.listView=listView;
}
@凌驾
受保护列表背景(无效…无效){
TaskDbHelper db=新的TaskDbHelper(上下文);
返回db.getTasks();
}
@凌驾
受保护的void onPreExecute(){
tasks=(ArrayAdapter)listView.getAdapter();
}
@凌驾
受保护的void onPostExecute(列出任务){
tasks.addAll(任务);
}
}

public List getTasks()
{
SQLiteDatabase db=this.getWritableDatabase();
字符串[]列=新字符串[]{“id”、“任务”、“完成”};
字符串prderBy=“任务ASC”;
//Cursor Cursor=db.query(TaskContract.TaskEntry.TABLE_NAME,columns,null,null,null,prderBy,null);
Cursor Cursor=db.rawQuery(“从任务中选择*,其中完成=?”,新字符串[]{“0”});
列表任务=新建ArrayList();
while(cursor.moveToNext())
{
任务t=新任务(cursor.getInt(0),
cursor.getString(1)
,cursor.getInt(2));
任务。添加(t);
}
cursor.close();
返回任务;
}

完成
异步任务后更新
列表视图的适配器

@Override
protected void onPostExecute(List<Task> tasks) {
    tasks.addAll(tasks);
    //Update listview adapter . Which already has the updated items 
    //assuming your listview adapter variable is listViewAdapter
    listViewAdapter.notifyDataSetChanged();
}
@覆盖
受保护的void onPostExecute(列出任务){
tasks.addAll(任务);
//更新listview适配器。它已具有更新的项
//假设listview适配器变量为listViewAdapter
listViewAdapter.notifyDataSetChanged();
}

在完成
AsyncTask

@Override
protected void onPostExecute(List<Task> tasks) {
    tasks.addAll(tasks);
    //Update listview adapter . Which already has the updated items 
    //assuming your listview adapter variable is listViewAdapter
    listViewAdapter.notifyDataSetChanged();
}
@覆盖
受保护的void onPostExecute(列出任务){
tasks.addAll(任务);
//更新listview适配器。它已具有更新的项
//假设listview适配器变量为listViewAdapter
listViewAdapter.notifyDataSetChanged();
}
检查此

@覆盖
受保护的void onPostExecute(列出任务){
tasks.addAll(任务);
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple_list_item_1,android.R.id.text1,tasks);
setAdapter(适配器);
}
@覆盖
受保护的void onPostExecute(列出任务){
tasks.addAll(任务);
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple_list_item_1,android.R.id.text1,tasks);
setAdapter(适配器);
}
显示getTasks()方法显示getTasks()方法
@Override
protected void onPostExecute(List<Task> tasks) {
tasks.addAll(tasks);
   ArrayAdapter<Task> adapter = new ArrayAdapter<Task>(this,
      android.R.layout.simple_list_item_1, android.R.id.text1, tasks);

      listView.setAdapter(adapter); 
}