代码之家  ›  专栏  ›  技术社区  ›  sergej

AlertDialog.Builder:未显示任何复选框项

  •  6
  • sergej  · 技术社区  · 14 年前

    以下代码中的alertdialog.builder有问题:

        public void showSettingsBox(){
      final CharSequence[] items = {"Item1", "Item2", "Item3"};
      final boolean checked[] = new boolean[]{false,false,false};
    
      AlertDialog.Builder builder = new AlertDialog.Builder(fLabyrinthGame); 
      builder.setMessage(fMessage)
       .setCancelable(false)
       .setMultiChoiceItems(items, checked, new OnMultiChoiceClickListener() {
    
        @Override
        public void onClick(DialogInterface dialog, int which, boolean isChecked) {
         CharSequence text = "Item number " + which;
         int duration = Toast.LENGTH_SHORT;
    
         Toast toast = Toast.makeText(fLabyrinthGame, text, duration);
         toast.show();
    
        }
       })
       .setPositiveButton("Apply", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
         dialog.cancel();
        }
       });
      builder.setTitle(fTitle); 
      builder.setIcon(R.drawable.icon_exclamation); 
    
      AlertDialog alert = builder.create(); 
    
      alert.show();   
     }
    

    这三个项目和复选框不会显示,标题栏和应用按钮之间只有一条白线。有人知道为什么这样不行吗?

    1 回复  |  直到 14 年前
        1
  •  11
  •   Rich Schuler    14 年前

    builder.setMessage(fMessage) 线路和它会工作:)

    setMessage 仅在您要显示文本消息时使用。如果你把它和 setMultiChoiceItems setItems 它似乎使生成器进入未定义状态。