我不明白为什么会这样。我有以下代码:
AlertDialog.Builder builder = new AlertDialog.Builder(SettingsActivityNew.this);
builder.setTitle("Title");
builder.setSingleChoiceItems(R.array.example_arrays, 1, null);
builder.setNegativeButton("Cancel", null);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(SettingsActivityNew.this, "which: " + which, Toast.LENGTH_LONG).show();
}
});
builder.show();
由于一些奇怪的原因,int继续给我-1。为什么会这样?
答案 0 :(得分:12)
来自doc:
Parameters
dialog The dialog that received the click.
which The button that was clicked (e.g. BUTTON1) or the position of the item clicked.
<小时/> BUTTON_POSITIVE:
public static final int BUTTON_POSITIVE
Added in API level 3
The identifier for the positive button.
Constant Value: -1 (0xffffffff)
所以这并不奇怪,但完全正常。每次你得-1,因为你点击了对话框的positiveButton
:)