多くの場所を検索しましたが、「runOnUiThread」の実装の完全な実例を見つけることができませんでした。私はたくさん試しましたが、多くのエラーがありました。スレッドからトーストを表示したいだけです。
これが最終的な完全なコードです。回答してくれたすべての人に感謝します。
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ファイルです。変更する必要はありません。
YourActivityName.this.runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(YourActivityName.this, "This is Toast!!!", Toast.LENGTH_SHORT).show();
}
});
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();
}
});
}
}