1

こんにちは、グリッド ビューを使用している Android アプリケーションを開発しています。グリッド アイテムを動的に更新したいのですが、グリッド アイテムには 1 つのタイトル テキストが含まれています。私はこのようにしようとしましたが、うまくいきません。

 ((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

したがって、上記のコードでは、印刷デバッグステートメントです。しかし、グリッドアイテム内にある所有者のテキストを更新していません。

テキストビューがグリッドアダプターのアイテムを参照していないと思います。init 時にタグを設定し、runonUIThread メソッド内で getTag() を実行することで確認できます。

このテキストビューがローカル変数またはグローバル変数であることを確認してください。グローバルの場合、最後のアイテムへの参照のみです - 次に、最後のアイテムの変更を確認しますか? そうじゃなくてもOK。完全なコードを投稿しましょう。

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

コードに、UI をブロックしている可能性のある Thread.sleep() があるかどうかを確認します。

于 2021-02-15T01:25:36.753 に答える