thisとthisのようないくつかの関連する質問を読んだが、問題はint
がそれ以上大きな値を保持できないということだ。私の場合はそうではありません。私の方法は常に0を返す
私は、ボタンの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つの選択肢から 項目を選択する前に、それは値を返し、それは項目を選択し、ユーザー 前に何を返すべきではありません。
第二選択の前に戻ってきたら、最後に確認があります だから
-1
なぜ0
であるべきですか?
なぜその0
を説明してください。あらゆる努力が評価されるだろう。
どうすればデバッグできますか?あなたの位置が更新されていないように見えますが、常に0 – canillas
の位置に値を設定しないでクリックすると、常に0が返されます。 – ADM