在我的android應用程序中,我有一個警告對話框,我想覆蓋返回按下的事件,並最終使警報解除。如何定義android alert alert builder的back事件?
但是有一個問題,當我點擊返回時,由於某種原因,返回事件發生兩次。我試圖通過把一個全局變量「加載」來解決這個問題,並且在我第一次做這件事時將它設置爲true。但這似乎不是一個好方法。有誰知道這裏有什麼錯嗎?
我實現這樣的:
String[] items = new String[names.size()];
items = names.toArray(items);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("");
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
File pickedFile = files.get(which);
try {
Scanner scanner = new Scanner(pickedFile);
String gradesheetData = "";
while (scanner.hasNext()) {
gradesheetData += scanner.useDelimiter("\\Z").next();
}
scanner.close();
gs = GsonParser.getGson().fromJson(gradesheetData, GradeSheet.class);
ShowData();
} catch (Exception e) {
e.printStackTrace();
return;
}
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
ShowData();
}
});
builder.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(DialogInterface arg0, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (!loaded) {
loaded = true;
ShowData();
}
}
return false;
}
});
builder.create();
builder.show();
你能請張貼fullcode .. –