首页 > 解决方案 > 调用方法 notifyDataSetChanged() 后 GridView 不会立即更新

问题描述

我正在尝试使用 android GridView 构建井字游戏(仅用于人类与 android 设备的游戏,我已经为我的机器人实现了一个名为 minimax 的智能算法)。我已经成功构建了所有东西(UI,我的机器人的极小极大算法),但仍然有一个难以理解的问题,即当我单击 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();
        }
    }
}

但是,gridviewBoard 并没有立即更新,gridviewBoard 仅在计算 findBestMove 函数时才更新,而计算时间较长。总结,我想在项目点击后和我的机器人计算之前立即更新 gridviewBoard。有人可以帮助我,并为我糟糕的英语语法感到抱歉。

标签: androidgridview

解决方案


推荐阅读