2013-04-04 46 views
0

我试图创建一个列表视图对话框来显示选择列表。我的代码如下所示:Android Listview对话框在选择一个项目后不会消失

 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被执行,但列表视图对话框不消失,我必须手动按后退按钮。我试图调试一整天的代码,但还没有解决。请帮帮我。先进的感谢!

回答

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(); 
     } 
    }); 
+0

小幅盘整,'AlertDialog对话框= stuckLevelDialog.show()',然后在你的onItemClick'dialog.dismiss()' – Pragnani 2013-04-04 04:24:45

+1

@Pragnani非常感谢纠正... :) – GrIsHu 2013-04-04 04:31:12

+0

@Pragnani和Grishu:谢谢,随着你的改正,我终于解决了我的问题! – 2013-04-04 04:34:24

0

使用stuckLevelDialog.dismiss;在onItemClick结束时。

+0

你可以在注释行中添加它,对吧? -1。 – 2013-04-04 04:25:42

+0

需要发布评论的最低50的声望评分.. – Mahesh 2013-04-19 07:57:18

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(); 
+0

是的,我知道关于单选按钮的setSingleChoiceItems,但它可以创建一个对话框,像这样的简单列表?顺便说一下,AlertDialog.Builder对象不带解雇方法。 – 2013-04-04 04:30:52

+0

@ NgoAnhTuan-HEDSPI检查下面的评论Girishu的回答 – Pragnani 2013-04-04 04:34:48

相关问题