【问题标题】:Update ListView Textview vom Asyntask更新 ListView Textview com Asynctask
【发布时间】:2014-03-27 20:25:03
【问题描述】:

我需要从我的异步任务中更新一个 textView。我有一个用于列表视图的自定义适配器,并且我想对每个条目进行倒计时。我将为我的适配器中的每个条目启动异步任务。如何从 asynctask 每秒更新 textview?

感谢您的帮助:)

【问题讨论】:

  • 嗨!尝试为您的问题发布代码,您将获得更多关注并且人们不必猜测!

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


【解决方案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);
}

【讨论】:

    【解决方案2】:

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

    类 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();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-04
      • 2020-03-20
      • 2013-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多