【发布时间】:2014-05-30 02:27:29
【问题描述】:
我有一个带有 public Item selectItem(Item[] items); 方法的 GUI 界面,它返回其中一项;我在我的 Activity 中实现了这个接口,并使用了一个 AlertDialog 让用户选择一个项目。这是我的代码:
private Item tempItem;
@Override
public Item selectItem(final Item[] items) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Select an Item");
builder.setItems(toStringArray(items), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int choice) {
tempItem = items[choice];
}
});
builder.setCancelable(false);
builder.show();
return tempItem;
}
tempItem 是一个支持变量,因为我无法返回 onClick() 方法中的值。问题是该方法返回null,因为tempItem 不是喷射装置。使用 AlertDialog 实现此方法是否有更好的解决方案?
【问题讨论】:
-
我尝试在 return 语句之前添加
while(tempItem==null) {};但随后 UI 冻结...
标签: java android user-interface interface android-alertdialog