26

我搜索了很多地方,但找不到“runOnUiThread”实现的完整工作示例。我尝试了很多,但得到了很多错误。我只想显示线程中的祝酒词。

4

3 回答 3

34

所以这是最终的完整代码。感谢所有回复的人。

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    MainActivity.this.runOnUiThread(new Runnable() {

        public void run() {
            Toast.makeText(MainActivity.this, "This is Toast!!!", Toast.LENGTH_SHORT).show();

        }
    });
}

}

关于 XML,它是创建的默认 XML 文件。无需更改。

于 2012-08-03T14:42:13.980 回答
12
YourActivityName.this.runOnUiThread(new Runnable() {

            @Override
            public void run() {
                Toast.makeText(YourActivityName.this, "This is Toast!!!", Toast.LENGTH_SHORT).show();

            }
        });
于 2012-08-03T07:28:04.997 回答
0

为了回答Nefariis的问题,我遇到了同样的问题,并且需要从非活动类中敬酒,要解决它,您可以将 Context 传递给您调用的函数runOnUiThread

例如:

public class FlashCardsUtil
{
    public static void fillTableFromFile(SQLiteDatabase pSqLiteDatabase, final Context pContext, String pFileName)
    {
        ...

        runOnUiThread(new Runnable()
        {
            public void run()
            {
                Toast.makeText(pContext, "Success filling database", Toast.LENGTH_SHORT).show();
            }
        });
    }
}
于 2018-02-19T23:53:36.677 回答