Ich habe viele Orte durchsucht, konnte aber kein vollständiges Arbeitsbeispiel für die Implementierung von "runOnUiThread" finden. Ich habe viel versucht, aber viele Fehler bekommen. Ich möchte nur einen Toast von einem Thread anzeigen.Kann ich ein Beispiel für das Anzeigen eines Toast mit runOnUiThread haben.
24
A
Antwort
34
Also hier ist der endgültige vollständige Code. Danke an alle, die geantwortet haben.
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();
}
});
}
}
Und über das XML ist es die Standard-XML-Datei erstellt. Keine Änderung benötigt.
11
YourActivityName.this.runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(YourActivityName.this, "This is Toast!!!", Toast.LENGTH_SHORT).show();
}
});
0
Um die Frage Nefariis zu beantworten, hatte ich das gleiche Problem, und musste Toast von einer Nicht-Aktivität-Klasse, um es zu lösen, können Sie Context auf die Funktion Ihren Anruf runOnUiThread
von übergeben.
Zum Beispiel:
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();
}
});
}
}
Thank you !! Das ist genau das, was ich wollte. Funktioniert perfekt. – Sourav301
Ist es möglich, dies von einer anderen Klasse zu tun? Im Moment startet meine MainActivity einen Thread in einer anderen Klasse und ich möchte, dass diese Klasse/dieser Thread eine Toast-Nachricht verwendet. – Nefariis