web-dev-qa-db-ja.com

runOnUiThreadを使用してトーストを表示する例はありますか。

多くの場所を検索しましたが、「runOnUiThread」の実装の完全な実例を見つけることができませんでした。私はたくさん試しましたが、多くのエラーがありました。スレッドからトーストを表示したいだけです。

25
Sourav301

これが最終的な完全なコードです。回答してくれたすべての人に感謝します。

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ファイルです。変更する必要はありません。

34
Sourav301
YourActivityName.this.runOnUiThread(new Runnable() {

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

            }
        });
11

Nefariis の質問に答えるには、同じ問題があり、非アクティビティクラスからトーストする必要がありました。それを解決するには、呼び出し元のrunOnUiThread関数にContextを渡すことができます。

例えば:

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();
            }
        });
    }
}
0
deepGrave