如何在AsyncTask类方法中更新列表的文本视图?

时间:2015-01-30 14:37:27

标签: android listview android-asynctask textview

坚持这一点。
FirstAsyncTask更新数组arr []
我使用另一个ImageAdapter更新图像。有关详细信息,请参阅代码 我想更新List的每个textview。 Follwoing代码更新图像视图但不更新textview。我想用arr []设置此textview的文本我在更新中 我在onPostExecute的{​​{1}}内使用了以下代码:

FirstAsyncTask

2 个答案:

答案 0 :(得分:0)

在AsyncTask类的postExecute方法中执行此操作

在doInBackground()之后,返回要填充列表的对象。

然后将其传递给onPostExecute(),您可以在那里初始化列表适配器。

private class LoadList extends AsyncTask<Void, Void, List<String>> {
        @Override protected List<String> doInBackground(Void... params) {
            ArrayList<String> listContents = new ArrayList<String>();

            listContents.add("Item one");
            listContents.add("Item two");
            listContents.add("Item three");

            return listContents;
        }

        @Override protected void onPostExecute(List<String> listContents) {
            ListAdapter adapter = new SimpleAdapter(MainActivity.this, listContents,
                    R.layout.list_item, arr, new int[] { R.id.name,
                    R.id.email, R.id.mobile });

            mListView.setAdapter(adapter);
        }
    }

答案 1 :(得分:0)

我们可以使用runOnUiThread概念更新doInBackground()内的UserInterface。但这是不好的做法。正如山姆所说,在onPostExe上更新用户界面会给予顺畅的互动。

否则你可以使用

的runOnUiThread

Sample.this.runOnThrea .. {public void run(){。在这里更新ui。}}