2012-08-03 71 views

回答

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文件。无需更改。

11
YourActivityName.this.runOnUiThread(new Runnable() { 

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

      } 
     }); 
+1

谢谢!!这正是我想要的。完美的作品。 – Sourav301 2012-08-03 14:38:11

+0

是否有可能从另一个班级做到这一点?现在我的MainActivity在另一个类中启动一个线程,我希望该类/线程使用Toast消息。 – Nefariis 2014-04-16 19:27:29

0

要回答Nefariis问题,我有同样的问题,并需要从一个非活动类烤面包,解决它可以将上下文传递到您调用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(); 
      } 
     }); 
    } 
}