0

選択したリストを表示するリスト ビュー ダイアログを作成しようとしました。私のコードを以下に示します。

        LayoutInflater factory=LayoutInflater.from(this);
    final View stuckLevelDialogView=factory.inflate(R.layout.report_stuck_dialog, null);

    final ListView stuckLevelListViewForDialog=(ListView)stuckLevelDialogView.findViewById(R.id.report_stuck_dialog_listview);
    final String[] stuckLevelList=new String[]{"1 - You can move freely","2 - You have to be aware of your movement","3 - You can move slowly","4 - There is a traffic jam","5 - There is a serious traffic jam"};
    ArrayAdapter<String> adapterForDialog=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, stuckLevelList);
    stuckLevelListViewForDialog.setAdapter(adapterForDialog);

    final AlertDialog.Builder stuckLevelDialog=new AlertDialog.Builder(this);
    stuckLevelDialog.setTitle("What stuck level is this point?");
    stuckLevelDialog.setView(stuckLevelDialogView);
    stuckLevelDialog.show();

ただし、オプションを選択すると、onItemClick が実行されますが、リストビュー ダイアログは消えません。手動で戻るボタンを押す必要があります。丸一日コードをデバッグしようとしましたが、まだ解決されていません。私を助けてください。よろしくお願いします!

4

3 に答える 3

0

以下のようdismiss()に、リスナーのダイアログが必要だと思います。onItemClick

    stuckLevelListViewForDialog.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> p_arg0, View p_arg1,
                int p_arg2, long p_arg3) {
        stuckLevelDialog.dismiss();
        }
    });
于 2013-04-04T04:20:51.563 に答える
0

stuckLevelDialog.dismiss を使用します。onItemClick の最後に。

于 2013-04-04T04:21:58.360 に答える
0

setSingleChoiceItemsラジオボタン付きのリストを表示するアイテムリストをアラートダイアログボックスに設定できます。ボタンを追加したい場合は、ユーザーができるアイテムを選択するとdismissdialog.

new AlertDialog.Builder(this)
    .setSingleChoiceItems(array, -1, new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // here you can do your functionality and can dismiss dialog as well
                    dialog.dismiss();

                }
            })        
    .show();
于 2013-04-04T04:24:39.140 に答える