【发布时间】:2018-05-26 02:38:01
【问题描述】:
我已经阅读了一些相关的问题,例如this 和this,但问题是int 无法拥有更大的价值。就我而言,不是那样。
我在按钮的OnClick 中调用下面的方法,但它总是返回0
public int showRadioAlertDialog(final Button button, String title,
final List<String> list, int selectedIndex) {
final AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
builder.setTitle(title);
builder.setCancelable(false);
builder.setSingleChoiceItems(list.toArray(new String[list.size()]),
selectedIndex, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (which > -1) {
position = which;
}
}
});
builder.setPositiveButton("Confirm", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
printLog("List position = " + list.get(position));
if (position > -1) {
button.setHint(list.get(position));
}
}
});
builder.setNegativeButton("Cancel", null);
AlertDialog dialog = builder.create();
dialog.show();
if (position > -1) {
return position;
} else {
return -1;
}
}
position 是一个全局变量。
我期待的是它应该返回-1 或所选位置的索引。
我注意到的第一件事是它在用户选择之前返回值 单选项目,它不应该在用户之前返回任何东西 选择一个项目。
第二个如果它在选择之前返回,我在最后有一个检查 所以应该是
-1为什么0。
请解释一下为什么它是0。任何努力将不胜感激。
【问题讨论】:
-
调试呢?看起来你没有更新位置,它总是 0
-
在确认单击时,您从未将值设置为位置,因此它将始终返回 0。
标签: java android methods int return