将主题应用于AlertDialog生成器会导致标题无法正常工作

问题描述:

我正在尝试向我的AlertDialog生成器添加标题。当我添加主题时,我的标题会进入选择区域。
这里是第一个例子:将主题应用于AlertDialog生成器会导致标题无法正常工作

classificationButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      AlertDialog.Builder builder = new AlertDialog.Builder(
        new ContextThemeWrapper(mContext, android.R.style.Theme_Holo_Dialog)); 
        //building my selection options 
        builder.setItems(classificationList, new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int which) { 
          String desiredClassification = classificationList[which]; 
          if (!getClassification().equals(desiredClassification)) { 
           CallsignContract.updateClassification(desiredClassification, mContext); 
           setClassification(desiredClassification); 
           classificationButton.setText(desiredClassification); 
          } 
         } 
        }); 
        builder.setTitle(R.string.classification_alert_header) 
          .create().show(); 
     } 
    }); 

这是结果。
no title
在第二次尝试时,我从构建器创建了一个alertdialog并给出了一个标题。结果是正确的标题,但标题再次出现在选择区域中。

 classificationButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      AlertDialog.Builder builder = new AlertDialog.Builder(
        new ContextThemeWrapper(mContext, android.R.style.Theme_Holo_Dialog)); 
         //building my selection options 
         builder.setItems(classificationList, new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int which) { 
          String desiredClassification = classificationList[which]; 
          if (!getClassification().equals(desiredClassification)) { 
           CallsignContract.updateClassification(desiredClassification, mContext); 
           setClassification(desiredClassification); 
           classificationButton.setText(desiredClassification); 
          } 
         } 
        }); 
      AlertDialog alertDialog = builder.create(); 
      alertDialog.setTitle(R.string.classification_alert_header); 
      alertDialog.show(); 
     } 
    }); 


double titles

谢谢!

+0

是不是'clasificationList'数组中的标题? –

+0

@UilqueMessias No. classificationList数组只包含Not specified,Unclassified,Confidential和Secret。 – RYDiiN

为了只显示一个标题,您必须致电​​。

AlertDialog.Builder builder = new AlertDialog.Builder(
    new ContextThemeWrapper(mContext, android.R.style.Theme_Holo_Dialog) 
); 

//building my selection options 
builder.setItems(classificationList, 
    new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 
      String desiredClassification = classificationList[which]; 

      if (!getClassification().equals(desiredClassification)) { 
       CallsignContract.updateClassification(desiredClassification, mContext); 
       setClassification(desiredClassification); 
       classificationButton.setText(desiredClassification); 
      } 
     } 
    } 
); 

AlertDialog alertDialog = builder.create(); 
alertDialog.setTitle(R.string.classification_alert_header); 
// Requesting dialog to remove the title 
alertDialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); 
alertDialog.show();