0

次のコードがあります。ユーザーの選択に基づいて、このメソッドで「players」の値を返そうとしています。ダイアログのonClickメソッドでこれを行うことができる問題、何か考えはありますか?

    public int dialogoInicial(){
    int players = 1;
    final String[] playersArray = {"1","2","3","4","5","6"};
    AlertDialog.Builder dialog = new AlertDialog.Builder(this);
    dialog.setTitle("Nº "+getString(R.string.players)+":");
    dialog.setSingleChoiceItems(playersArray, -1, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int player) {
            players = Integer.parseInt(playersArray[player]);
        }
    });
    dialog.show();

    return players;
}
4

1 に答える 1

1

ここでのこの問題はreturn players、ダイアログが表示されている間にが実行されることです。簡単な解決策は、players変数を関数のローカル変数ではなくクラスレベルの変数にすることです。関数は何も返すことができないため、関数voidを返すこともできます。AndroidダイアログはAsynchronousです。

于 2012-06-04T13:14:44.870 に答える