Android:int,在DialogInterface.OnClickListener()中为-1

Xan*_*der 5 java android android-alertdialog

我不明白为什么会这样.我有以下代码:

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();
Run Code Online (Sandbox Code Playgroud)

出于一些奇怪的原因,int继续给我-1.为什么会这样?

Ale*_* C. 13

来自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.
Run Code Online (Sandbox Code Playgroud)


BUTTON_POSITIVE:

public static final int BUTTON_POSITIVE

Added in API level 3
The identifier for the positive button.

Constant Value: -1 (0xffffffff)
Run Code Online (Sandbox Code Playgroud)

所以这并不奇怪,但完全正常.你每次都得-1,因为你点击了positiveButton你的对话框:)