更新ListView Textview vom Asynctask

时间:2014-03-27 20:25:03

标签: android android-listview android-asynctask android-ui

我需要从我的asynctask更新textView。我有一个listview的自定义适配器,我希望每个条目都有倒计时。我将从我的适配器启动每个条目的asynctask。如何从asynctask每秒更新textview?

感谢您的帮助:)

2 个答案:

答案 0 :(得分:1)

如果你发布你的代码,我可以给你一个更好的答案。但是,定期更新视图的常用方法是使用Handlers

private final Handler mHandler = new Handler(); //intialize in main thread

public void test() {
    mHandler.postDelayed(new Runnable() {

        @Override
        public void run() {
            mTextView.setText("hello");

        }
    }, 1000);
}

答案 1 :(得分:0)

您可以执行以下操作(这将每隔一秒向列表视图添加一个条目)。我使用普通的ArrayAdapter来添加字符串。您可以使用自定义适配器执行类似的操作。 publishProgress()方法基本上触发onProgressUpdate()方法,该方法挂钩到UI线程并显示添加的元素。:

class AddStringTask扩展了AsyncTask {

    @Override
    protected Void doInBackground(Void... params) {
        for(String item : items) {
            publishProgress(item);
            SystemClock.sleep(1000);
        }
        return null;
    }

    @Override
    protected void onProgressUpdate(String... item) {
        adapter.add(item[0]);
    }

    @Override
    protected void onPostExecute(Void unused) {
        Toast.makeText(getActivity(), "Done adding string item", Toast.LENGTH_SHORT).show();
    }
}