Android的runOnUiThread没有更新UI元素(Android runOnUiThrea

2019-10-22 12:18发布

嗨,我开发Android应用程序中,我使用网格视图。 我想更新的网格项dynamically.My电网项目包含一个标题文本。 我试图做这样的,但它不是为我工作。

 ((Activity)context).runOnUiThread(new Runnable()
    {
        public void run()
        {
            Debug.print("this is update progress inside thread  ...");

            owner.setText("Uploading...");

            invalidate();
            requestLayout();
        }
    });

因此,在上面的代码中其打印调试语句。 但没有更新我的主人的文字是电网的项目里面。

我想这也...

 Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            owner.setText("Uploading...");
        }
    };
    handler.sendEmptyMessage(0);

Answer 1:

请尝试刷新您的适配器,您用来加载网格项。 要么你可以使用invalidateViews()方法或adapter.notifyDataSetChanged()

这将帮助你解决你的问题。

编码愉快..



Answer 2:

因此,在上面的代码中其打印调试语句。 但没有更新我的主人的文字是电网的项目里面。

我认为它的TextView中不会提及您的项目在网格适配器。 runonUIThread方法内初始化和getTag()时,您可以通过设置标签检查。

让我们检查这个TextView的是本地或全局变量。 如果全球性的,它只是引用到最后一个项目 - 再检查最后一个项目的变化? 如果它不是确定。 让后满我们的代码。



Answer 3:

runOnUiThread(new Runnable() {
    @Override
    public void run() {
        Debug.print("Updating UI ...");
        owner.setText("Uploading ...");
        invalidate();
        requestLayout();
    }
});


文章来源: Android runOnUiThread not updating UI elements