Android中Toast消息参数中的问题

Android中Toast消息参数中的问题,android,Android,我想在静态类中显示toast消息,但这是toast消息参数传递应用程序上下文的问题。请帮助我,如何在静态类中显示toast消息。请向我推荐我需要做的改变,我将非常感谢你。这是我代码的一部分 public class MainActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceSta

我想在静态类中显示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

您可以将活动的上下文传递给构造函数中的UpdateRunnable类,然后在run()函数中使用它

但是,如果您正在显示来自内部类的Toast,那么该内部类可能根本不应该是静态类。您可以删除static关键字,然后在run()中使用活动的getContext()


为什么希望内部类是静态的?

好吧,其中一种方法是在活动中使用静态变量

公共静态上下文myContext

然后在onCreate中更新它

onCreate()
{
    myContext = getApplicationContext();
}

另一种方法是在类的构造函数中传递上下文…

您可以尝试为toast创建一个单独的方法

public void showToast(String message){

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

}//end showToast

然后在内部类中调用它。

我猜是getParent()还是getApplicationContext()应该做的工作是将参数传递给类并拥有一个本地上下文对象。如果失败请告诉我

@Farhan在这种情况下不是真的,因为这个类无论如何都要使用一个特定的上下文,因此依赖于它的外部类是的,我只是说通常情况下它很好。。。有时你会在内部类中创建一个像textview之类的对象。。。我不知道细节,但正如我所说,我在某处读到……:)英雄联盟如果此函数在活动范围内,则它应该是静态的,以便内部类可以访问它,然后您不能在静态函数中使用getApplicationContext()。。。如果它在静态内部类中,那么同样的问题,您不能在静态内部类中使用getApplicationContext..aha ok…:/用Activity类扩展内部类,然后在构造函数中添加上下文怎么样?mEndlessRunnable=(Runnable)新的UpdateRunnable(MainActivity.this);如果您正在构造函数中添加上下文,那么使用活动进行扩展是没有用的。。。