これは実際の問題よりもUXの問題ですが、修正できればうれしいです。AlertDialogのラジオボタンは変更されません。
私はそれが作成するために使用するコードは、そう... ... ...
private void createGuideViewChooserDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Select Guide View");
builder.setSingleChoiceItems(guideViewChooserDialogItems, currentGuideView, this);
guideViewChooserDialog = builder.create();
guideViewChooserDialog.show();
}
を
を画像に似た単一選択AlertDialog
を作成しています基本的には、currentGuideView
というint
を使用して、選択されているラジオボタンを設定し、Activity
はDialogInterface.OnClickListener
を実装するため、this
を呼び出して使用しますsetSingleChoiceItems(...)
。
リスナーは、選択したアイテムに基づいていくつかの簡単なことを行い、次にguideViewChooserDialog.cancel()
を呼び出します。
リスト項目のいずれかをタッチすると項目が短く強調表示され、選択されたラジオボタンの変更を表示せずにAlertDialog
が消えます。
すべてはうまく動作し、私のonClick(...)
リスナーはどの項目がタッチされたかを取得しますが、ラジオボタンの選択の変更が表示されずにダイアログが消えてしまうのはちょっとわかりません。
私はこれをHTC Desire with Android v2.2でテストしています。これは計画された動作か、v2.2かHTC実装のいずれかのバグですか?ダイアログボックスが消える前に、選択した項目のラジオボタンが正しく選択された状態で表示されるようにすることはできますか?
完全なコードを貼り付けてください。それらの変数が何を参照しているかを推測しなければならないときは、それを理解するのは難しいです... – LuxuryMode
どの変数を推測する必要はありませんか? 'guideViewChooserDialogItems'はテキストの' CharSequence [] 'です。質問で言及したように、' currentGuideView'は 'AlertDialog'が最初にあるときに選択するラジオボタンを設定する' int'(0-2の間)です。表示されます。要点は機能しますが、アイテムに触れると、 'AlertDialog'は自動的にラジオボタンの選択を切り替えません。私は手動で手動で切り替えなければならないか(これを行う方法は見つけられません)、またはAlertDialogが自動的にそれを行うべきかどうかを知る必要があります。 – Squonk