我可以使用runOnUiThread显示toast的示例吗?

时间:2012-08-03 07:25:23

标签: android multithreading toast

我在很多地方搜索过但找不到“runOnUiThread”实现的完整工作示例。我尝试了很多,但是遇到了很多错误。 我只是想从一个帖子中显示一个祝酒词。

3 个答案:

答案 0 :(得分: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文件。无需改变。

答案 1 :(得分:11)

YourActivityName.this.runOnUiThread(new Runnable() {

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

            }
        });

答案 2 :(得分: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();
            }
        });
    }
}