Перерисовать (сделать недействительным) клик по меню - PullRequest
0 голосов
/ 28 марта 2012

Я изучаю Android и Java, так что это, вероятно, простой вопрос.

Я пытаюсь вызвать invalidate () в DrawView.Я прочитал об этом, и я думаю, что проблема в том, что я не могу вызвать недействительным вне потока пользовательского интерфейса (или что-то).Насколько я знаю, у меня работает только один поток, так как это простая игра TicTacToe.вот мой кодВ первой части моего класса DrawView

class DrawView extends View implements OnTouchListener, OnGestureListener
{
    public DrawView(Context context)
    {
        super(context);
        this.setOnTouchListener(this);

    }

    @Override
    protected void onDraw(Canvas canvas)
    {
                    canvas.drawColor(0xFF303030);
        Paint paint = new Paint();
        paint.setColor(0xFFFFFFFF);
        board.draw(canvas);
        detectEnd();
    }

кажется, что вызывается неверный вызов IS, однако это приводит к сбою программы.Есть идеи?

РЕДАКТИРОВАТЬ: я пытался dv.postInvalidate (), однако он выдает исключение нулевого указателя.Я попытался инициализировать DrawView DV несколькими способами, но безрезультатно.

1 Ответ

0 голосов
/ 28 марта 2012

Если вы вызываете invalidate из-за DrawView, вы должны вместо этого вызвать postInvalidate ().

Кроме того, обычно не рекомендуется воспроизводить звуки во время метода onDraw.

...