1

嗨,我正在开发使用网格视图的 android 应用程序。我想动态更新网格项。我的网格项包含一个标题文本。我试图这样做,但它不适合我。

 ((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);
4

4 回答 4

0

尝试刷新用于加载网格项目的适配器。您可以使用invalidateViews () 方法或adapter.notifyDataSetChanged()

这将帮助您解决问题。

快乐的编码..

于 2015-04-06T06:53:59.967 回答
0
runOnUiThread(new Runnable() {
    @Override
    public void run() {
        Debug.print("Updating UI ...");
        owner.setText("Uploading ...");
        invalidate();
        requestLayout();
    }
});
于 2015-04-06T06:49:58.887 回答
0

所以在上面的代码中它的打印调试语句。但不更新网格项内的我的所有者文本。

我认为它的 textview 没有引用您在网格适配器中的项目。您可以在 runonUIThread 方法中的 init 和 getTag() 时通过 set tag 来检查它。

让我们检查一下这个 textview 是局部变量还是全局变量。如果是全局的,它只引用最后一项 - 然后检查最后一项更改?如果不是,好的。让我们发布完整的代码。

于 2015-04-06T06:43:44.787 回答
0

检查代码中是否有任何可能阻塞 UI 的 Thread.sleep()。

于 2021-02-15T01:25:36.753 回答