Android中Toast消息参数中的问题
我想在静态类中显示toast消息,但这是toast消息参数传递应用程序上下文的问题。请帮助我,如何在静态类中显示toast消息。请向我推荐我需要做的改变,我将非常感谢你。这是我代码的一部分Android中Toast消息参数中的问题,android,Android,我想在静态类中显示toast消息,但这是toast消息参数传递应用程序上下文的问题。请帮助我,如何在静态类中显示toast消息。请向我推荐我需要做的改变,我将非常感谢你。这是我代码的一部分 public class MainActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceSta
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);如果您正在构造函数中添加上下文,那么使用活动进行扩展是没有用的。。。