调用方法notifyDataSetChanged()后,GridView不会立即更新

时间:2018-05-12 10:56:18

标签: android gridview

我正在尝试使用Android GridView构建Tic-Tac-Toe游戏(仅用于Android设备的人类游戏,我已经为我的机器人实现了一种名为minimax的智能算法)。我已经成功构建了一切(UI,我的机器人的minimax算法)但是仍然有一个难以理解的问题,就是当我点击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。有人可以帮助我,抱歉我的英语语法不好。

0 个答案:

没有答案