我正在学习Android Studio,必须创建一个TicTacToe程序。游戏本身运行良好,但是,我还需要获得用户输入,以询问谁先进入游戏,以及要先进入游戏的人想要什么样的颜色(在红色或黑色这两种颜色之间)。

我已经浏览了AlertDialogs的文档,但我只是想不通如何用外行的话做类似的事情:

if (alert.getButtonPressed() == "X") {
firstLetter == "X"
}

else {
firstLetter == "O"
}


这不是我所知道的样子,但是我只是想帮助大家了解我在这里想要做的事情。我还需要它执行类似的操作,但是除了设置第一个字母或谁先进入X / O之外,我还需要根据谁首先要成为X / O来设置其颜色。

我要发布的代码不是完整的程序,但我希望它可以为您提供足够的重要内容,以帮助您了解该程序的整体外观。代码比我要显示的要多得多,并且游戏仍然有效,我想增加选择谁先行,X或O以及先行者的肤色的功能。我绝不是以某种形式或形式乞求某人为我做这件事,我只是想知道在我的程序上下文中是否可以从AlertDialog中获取用户按下的内容,然后进行更改首先是哪个字母,字母的颜色是什么。

如果需要发布更多代码,请告诉我。我真的想听起来不像是一个大学生,正在寻找可以解决我所有问题的人,然后只给我答案,所以,如果我这样做,我表示歉意,并向您保证不是这种情况。我完全愿意并准备编辑和更改此帖子,以帮助我理解这一点。

  @Override
    protected void onCreate( Bundle savedInstanceState ) {
        super.onCreate( savedInstanceState );
        game = new TicTacToe( );
        Point size = new Point( );
        getWindowManager().getDefaultDisplay( ).getSize( size );
        int w = size.x / TicTacToe.SIDE;
        ButtonHandler bh = new ButtonHandler( );
        tttView = new ButtonGridAndTextView( this, w, TicTacToe.SIDE, bh );
        tttView.setStatusText( game.result( ) );
        setContentView( tttView );
    }



    private class ButtonHandler implements View.OnClickListener { //this is the buttonhandler to put an X/O
        public void onClick( View v ) {
            for( int row = 0; row < TicTacToe.SIDE; row++ ) {
                for( int column = 0; column < TicTacToe.SIDE; column++ ) {
                    if( tttView.isButton( ( Button ) v, row, column ) ) {
                        int play = game.play( row, column );
                        if( play == 1 )
                            tttView.setButtonText( row, column, "O" );
                        else if( play == 2 )
                            tttView.setButtonText( row, column, "X" );
                        if( game.isGameOver( ) ) {
                            tttView.setStatusBackgroundColor( Color.RED );
                            tttView.enableButtons( false );
                            tttView.setStatusText( game.result( ) );
                            showNewGameDialog( );    // offer to play again
                        }
                    }
                }
            }
        }
    }
}




//Next bit of code is from my TicTacToe.java class

    public int play( int row, int col ) {
        int currentTurn = turn;
        if( row >= 0 && col >= 0 && row < SIDE && col < SIDE
                && game[row][col] == 0 ) {
            game[row][col] = turn;
            if( turn == 1 )
                turn = 2;
            else
                turn = 1;
            return currentTurn;
        }
        else
            return 0;
    }

最佳答案

//试试这个

String[] YOURCHOICE = {"X", "O"};
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Choose your action!");
    builder.setItems(YOURCHOICE, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            if(which == 0){
                //Do Some X function
            }else if(which == 1){
                //Do Some O function
            }
        }
    });
    builder.show();

10-01 06:40
查看更多