0
我從一個接口(我不能修改)覆蓋的功能,比方說功能的返回值使用AlertDialog
public abstract int getResult();
在此功能,我想問的用戶是什麼結果應該是,使用AlertDialog。所以我的實現應該是這樣的:
public int getResult() {
int result;
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which){
case DialogInterface.BUTTON_POSITIVE:
result = 1;
break;
case DialogInterface.BUTTON_NEGATIVE:
result = 2;
break;
}
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("What is the result?").setPositiveButton("1", dialogClickListener)
.setNegativeButton("2", dialogClickListener).show();
return result;
}
顯然,這是行不通的,由於AlertDialog的異步特性。處理這種情況的正確方法是什麼?