0

静的クラスでトースト メッセージを表示したいのですが、アプリケーションのコンテキストを渡すトースト メッセージ パラメータの問題です。静的クラスでトーストメッセージを表示する方法を教えてください。私がしなければならない変更を私に勧めてください、私はあなたにとても感謝しています. これが私のコードの一部です。

    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
4

4 に答える 4

1

あなたはあなたのトーストのために別の方法を作ることを試みることができます

public void showToast(String message){

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

}//end showToast

次に、それを内部クラスで呼び出します。

于 2012-10-24T12:50:32.720 に答える
1

Activity の Context をコンストラクターで UpdateRunnable クラスに渡し、それを run() 関数で使用できます。

ただし、内部クラスから Toast を表示している場合、その内部クラスはおそらく静的クラスであってはなりません。static キーワードを削除して、アクティビティの getContext() を run() で使用できます。

なぜ内部クラスを静的にしたいのですか?

于 2012-10-24T12:41:52.133 に答える
0

さて、方法の1つは、アクティビティで静的変数を使用することです。

public static Context myContext;

次に、onCreateで更新します。

onCreate()
{
    myContext = getApplicationContext();
}

他の方法は、クラスのコンストラクターでコンテキストを渡すことです...

于 2012-10-24T12:43:38.573 に答える
0

getParent() または getApplicationContext() は、パラメーターをクラスに渡し、ローカルコンテキストオブジェクトを持つ必要があると思います。失敗した場合はお知らせください

于 2012-10-24T12:55:24.093 に答える