입력란과 두 개의 버튼이있는 알림 대화 상자가 있습니다 (되돌리기, 저장). 휴대 전화에서 "뒤로"버튼을 클릭하면 "확인 하시겠습니까?"라는 질문에 대한 확인 대화 상자가 나타납니다.Android : AlertDialog는 두 번째 버튼을 클릭 한 후에 만 닫습니다.
public void showNewItemDialog(final int...position) {
LayoutInflater li = LayoutInflater.from(HostActivity.this);
View promptsView = li.inflate(R.layout.item_dialog, null);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
HostActivity.this);
alertDialogBuilder.setView(promptsView);
userInput = (EditText) promptsView.findViewById(R.id.editTextDialogUserInput);
if(position.length>0){
userInput.setText(listFragment.getmItems().get(position[0]).getTitle());
userInput.setSelection(userInput.length());
userInput.requestFocus();
}
alertDialogBuilder
.setCancelable(false)
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
String title = userInput.getText().toString();
if(listFragment.getItemClickType() == Utility.ItemClick.SHORT){
listFragment.editRowItem(title, position[0]);
}else if(listFragment.getItemClickType() == Utility.ItemClick.LONG){
}else if(listFragment.getItemClickType() == Utility.ItemClick.ADD_BUTTON){
listFragment.addRowItem(title);
}
}
})
.setNegativeButton("Revert",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
newItemalertDialog = alertDialogBuilder.create();
newItemalertDialog.setOnKeyListener(new Dialog.OnKeyListener() {
@Override
public boolean onKey(DialogInterface arg0, int keyCode,
KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
new AlertDialog.Builder(HostActivity.this)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle("Add Item")
.setMessage("Are you sure you want to finish?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
newItemalertDialog.dismiss();
}
}).setNegativeButton("No", null).show();
}
return false;
}
});
newItemalertDialog.show();
}
그것은 모든 작품을하지만 (예, 아니오) 어떤 버튼을 두 번 눌러 후에 두 번째 확인 대화 상자가 닫히고 : 그래서 모두는 다음과 같습니다. 그 원인을 찾을 수없는 것 같습니다. 감사합니다.
완벽한 아래와 같이 변경! 고맙습니다. – Sermilion