Java 有没有一种方法可以;获得;从警报对话框中按下什么并更改其他内容的值?

Java 有没有一种方法可以;获得;从警报对话框中按下什么并更改其他内容的值?,java,android,android-alertdialog,Java,Android,Android Alertdialog,我正在学习Android Studio,我必须创建一个TictaToe程序。游戏本身运行得很好,但是,我还需要获得用户输入,以询问谁先走,以及先走的人想要什么颜色(介于红色或黑色两种颜色之间) 我已经阅读了AlertDialogs的文档,我只是不知道如何用外行的话说,做一些类似的事情: if (alert.getButtonPressed() == "X") { firstLetter == "X" } else { firstLetter == "O" } 据我所知,这看起来不是什么样子,

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

我已经阅读了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;
    }
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
游戏=新Tictaoe();
点大小=新点();
getWindowManager().getDefaultDisplay().getSize(大小);
int w=尺寸x/侧面;
ButtonHandler bh=新的ButtonHandler();
tttView=新按钮RID和TEXTVIEW(此,w,TictoE.SIDE,bh);
tttView.setStatusText(game.result());
setContentView(tttView);
}
私有类ButtonHandler实现View.OnClickListener{//这是放置X/O的ButtonHandler
公共void onClick(视图v){
for(int row=0;row=0&&col>=0&&row
//试试这个

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();

我仍然没有看到在任何地方使用的
AlertDialog
对象?!请告诉我您是在使用它还是TLDR?您想从alertDialog获取值吗?问题是我想使用它。我通过制作一个不起任何作用的AlertDialog对其进行了测试,但是,我的问题是,我不知道如何让AlertDialog更改谁先进入的值以及先进入的字母的颜色。我可以通过实现自定义对话类或使用库来帮助您获取AlertDialog的值。任何更适合你的。图书馆听起来更直截了当,占用你的时间更少,所以这个选择似乎是最好的。看看这个。这符合你的目的。无需重新设计轮子。您正在将int与字符串进行比较