2 myq 26 myq_26 于 2013.01.11 14:45 提问

Toast 信息参数的问题

我想在一个静态类中显示一个toast信息,但是Toast信息参数传递应用程序的内容时有问题。请问如何在一个静态类中显示一个toast信息?
附上我的部分代码:

 public class MainActivity extends Activity {
         public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.training_four_position);
            mEndlessRunnable = (Runnable) new UpdateRunnable();
            mEndlessRunnable.run();
    }


   private static class UpdateRunnable implements Runnable  {
   private int mState; 

   public UpdateRunnable(Handler handler, Button[] buttons) {
         mHandler = handler;
         mButtons = buttons;
   }

    public void run() {
        switch (mState) {
        case 0:
               mState = 1;
               break;
        case 1:

            mState = 0;
               // Here is the issue in my toast message
               Toast.makeText(CONTEXT, "Toast message.",Toast.LENGTH_LONG).show();
                break;
     }

  mHandler.postDelayed(this,1000)); 

  }// End of run()
  }//End of class UpdateRunnable
  } //End of MainActivity

3个回答

hxn_217
hxn_217   2013.01.14 13:15
已采纳

你可以为toast创建一个单独的方法

public void showToast(String message){

    Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show();

}//end showToast
ccchp
ccchp   2013.01.11 16:08

问题应该是Toast得在UI主线程里操作,你线程传进来一个handler,可以在发个消息出去,在外面显示Toast

yongyong_21
yongyong_21   2013.01.14 13:19

在activity中使用一个静态的变量

public static Context myContext;

然后在onCreate中更新

onCreate()
{
    myContext = getApplicationContext();
}

还有就是在类中的构造函数传递上下文。

Csdn user default icon
上传中...
上传图片
插入图片