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在警报对话框中设置您的项目列表,这将显示一个带有单选按钮的列表。如果您想添加按钮,您可以在用户选择任何项目后dismiss添加dialog.

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 回答