2012-08-03 5 views

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(); 

      } 
     }); 
+1

Thank you !! Das ist genau das, was ich wollte. Funktioniert perfekt. – Sourav301

+0

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

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