単一選択アラート ダイアログで選択した項目を保存して使用しようとしています。
これまでの私のコードは次のとおりです。
final String[] deviceNames = getBTPairedDeviceNames();
int selpos;
new AlertDialog.Builder(this)
.setSingleChoiceItems(deviceNames, 0, null)
.setPositiveButton("O.K.", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.dismiss();
int selectedPosition = ((AlertDialog)dialog).getListView().getCheckedItemPosition();
// Do something useful with the position of the selected radio button
selpos = selectedPosition;
}
})
.show();
Toast.makeText(this, "" + selpos, Toast.LENGTH_SHORT) .show();
selpos に代入しようとすると、コンパイル エラーが発生します。エラーは次のとおりです。
「別のメソッドで定義された内部クラス内の非最終変数 selpos を参照することはできません」
selpos を final に設定すると、エラーが発生します。
「最後のローカル変数 selpos は、囲んでいる型で定義されているため、代入できません」
選択した項目の位置をコード ブロックから取得するにはどうすればよいですか?
ありがとう