来自Java类的Toast消息

时间:2015-06-21 16:20:32

标签: java android toast

我正在开发card game。在游戏的main class中称为" Mesa"它触发游戏的主循环我想要Toast一些消息,看看它是否有效,如果运行的话我想要做的下一步是为这个游戏构建用户界面。 我要显示的所有这些消息都是Logged sing Log.d(...,...),它运行正常。我遇到的问题是,当尝试Toast这些消息时,屏幕似乎变黑了。 这是我的class Toast消息:

public class ToastMsg
{

    Context ctx;

    public ToastMsg (Context context)
    {
        this.ctx = context;
    }

    public void makeText(final String text)
    {
           Handler handler = new Handler();        
            handler.post(new Runnable() {
                public void run() {
                    Toast toast = Toast.makeText(ctx, text, Toast.LENGTH_SHORT);
                    toast.show();
                }
            });
    }
}

以下是来自onCreate的{​​{1}}方法,其中我创建了一个新的" Mesa"

Principal.class

在logCat中我收到错误:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_principal);
    mesa = new Mesa(Principal.this, 3, 1, 3);
    mesa.añadirJugador(new JugadorBot("Jose"));
    mesa.añadirJugador(new JugadorBot("Hasan"));
    mesa.añadirJugador(new JugadorBot("Abdul"));

    runOnUiThread(new Runnable() {

        @Override
        public void run() {
            // TODO Auto-generated method stub
            try {
                mesa.empezarPartida();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                Log.d("ERROR", e.getMessage());
            }
        }
    });

}

编辑:

例如,当使用Toastmessage方法时(例如,这是一个代表甲板的类的方法)

06-21 11:55:05.558: W/ActivityManager(1273): Launch timeout has expired, giving up wake lock!
06-21 11:55:05.848: E/WindowManager(1273): Starting window AppWindowToken{b3307548 token=Token{b333f7a8 ActivityRecord{b3398748 u0 com.games.sardineta/.Principal t3}}} timed out

编辑2:

public void repartir (int cartas, Jugada jugada)
{
    /* Métedo que recibe el número de cartas a repartir
     *  y los jugadores. Reparte cartas a los jugadores
     *  uno a uno.
     */
    ArrayList<Jugador> jugadores = jugada.mesa.jugadores;
    for (int i=1; i<=cartas; i++)
    {
        for (Jugador jugador : jugadores)
        {
            try
            {
                Carta carta = baraja.get(0);
                jugador.getMano().add(carta);
                baraja.remove(0);
                Log.d("DEBUG", jugador.getNombre() + " recibe " + carta.toString());
                jugada.mesa.toast.makeText(jugador.getNombre() + " recibe " + carta.toString());
                sleep(1000);
            }
            catch (NullPointerException npe)
            {
                throw new Error ("Baraja vacía.");
            }

        }
    }
}

有什么想法吗? 一些帮助将是欣赏。

0 个答案:

没有答案