GridView не обновляется сразу после вызова метода notifyDataSetChanged () - PullRequest
0 голосов
/ 12 мая 2018

Я пытаюсь построить игру Tic-Tac-Toe (только для игры на людях с устройством Android, я реализовал умный алгоритм под названием minimax для моего бота) с помощью Android GridView. Я все успешно скомпилировал (пользовательский интерфейс, минимаксный алгоритм для своего бота), но проблема все еще остается трудной для понимания, то есть когда я нажимаю на элемент Gridview, я хочу, чтобы GridView должен был обновиться немедленно, а потом мой бот начинает его вычислять. Итак, я реализовать свой код для установки на элементе GridView, щелкнув следующим образом:

gridviewBoard.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l){
        //if it is a legal moves of player
        if (isLegal(false, i)){
            //put X into board
            put(false, i);
            //I want to update gridview immediately by using notifyDataSetChanged()
            chessAdapter.notifyDataSetChanged();
            //then start my bot calculating
            // findBestMove is a method to find the best move for my bot 
            // by using minimax algorithm 
            int nextMove = findBestMove();
        }
    }
}

Howerver, gridviewBoard обновлялся не сразу, gridviewBoard обновляется только тогда, когда вычисляется функция findBestMove, а вычисление занимает много времени. Подводя итог, я хочу обновить gridviewBoard сразу после нажатия элемента и до расчета моего бота. Может ли кто-нибудь мне помочь, и извините за мою плохую грамматику английского языка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...