1
我從活動使用「onCreateDialog」的方法打開一個警告對話框:Android對話框:解除對話框後我應該返回哪裏?
protected Dialog onCreateDialog(int id) {
Dialog dialog = null;
switch(id) {
case DIALOG_PASSWORD_VERIFICATION:
LayoutInflater factory = LayoutInflater.from(this);
final View passwordDialog = factory.inflate(R.layout.password, null);
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Please enter your password");
alert.setView(passwordDialog);
alert.setCancelable(false);
alert.create();
alert.setPositiveButton("Ok", new PasswordDialogListenerOk(
passwordDialog, getApplicationContext()));
alert.setNegativeButton("Cancel", new PasswordDialogListenerOk(
passwordDialog, getApplicationContext()));
alert.show();
break;
default:
dialog = null;
}
return dialog;
}
一切正常和順利,但我不知道在哪裏,我在我的活動取回。對話框消失,但對話框關閉後,活動中的返回點在哪裏?
在監聽器中,我調用服務器以驗證用戶在對話框中輸入的密碼。驗證密碼後,我想回到活動並更改TextView元素的值。我無法更新偵聽器中的此元素,因爲我無法訪問它。 – pfust75 2012-02-28 21:27:58
所以給你的聽衆進入。有很多方法可以做到這一點。如果您的監聽器中的代碼不是異步的,那麼可以將您的'PasswordDialogListener'封裝在另一個監聽器中,該監聽器在內部監聽器完成後更新UI。您可以將回調傳遞給您的偵聽器,您可以讓偵聽器成爲內部類,或者您可以將視圖傳遞給偵聽器以更新它(只要確保不泄漏它)。 – kabuko 2012-02-28 21:35:37