Hôm nay tôi gặp phải một vấn đề rất lạ. Trong trò chơi của tôi, tôi tạo ra AlertDialog để hiển thị cho người dùng những thách thức cấp độ tiếp theo khi người chơi thành công. Vì vậy, mã tương ứng là như thế này. khi trò chơi thành công showDialog (R.id.display_success) được gọi và mã sau được thực hiện.Android: Không thể thay đổi văn bản xuất hiện trong AlertDialog
Vì vậy, tôi dự kiến sẽ thực thi mã này trong mọi cuộc gọi. Tuy nhiên; các trò chơi được thực hiện chỉ một lần và hiển thị cùng một AlertDialog trong mỗi thực hiện khác. Ý tôi là, giống như thể hiện không được tạo ra sau khi cá thể đầu tiên được tạo ra và cá thể đầu tiên được sử dụng mọi lúc. Tôi hy vọng tôi có thể mô tả vấn đề của tôi.
case R.id.display_success:
updateGameSettings();
message = formatLevel()
+ formatMission();
return new AlertDialog.Builder(this)
.setIcon(R.drawable.smiley_happy)
.setTitle(R.string.dialog_success)
.setMessage(message)
.setPositiveButton(R.string.alert_dialog_newgame, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
startANewGame();
}
})
.setNegativeButton(R.string.exit, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
finish();
}
})
.create();
Tôi nghĩ rằng bạn đã sai. Theo thiết kế, mỗi Dialog chỉ được tạo một lần. Nếu bạn muốn thay đổi nội dung của hộp thoại của bạn sử dụng onPrepareDialog, được gọi là mọi lúc hộp thoại của bạn sắp xuất hiện. Mã được cung cấp có thể hoạt động, nhưng nó không phải là cách ưu tiên để làm điều đó. –
Tôi đặt 'removeDialog' trong câu lệnh try try. Các mã hoạt động, nhưng tôi rất nhiều nghi ngờ đó là cách đúng để làm điều đó –
@Tim, vâng tôi sai. Tôi đã học được điều này sau này rằng onPrepareDialog được gọi mỗi khi hộp thoại được tạo ra. –