2015-02-11 45 views
2

只是一个简单的问题。我有一个警告对话框弹出窗口,为用户提供一个简短的选项列表。如何在AlertDialog中使用一个CharSequence项目?

我想这些项目中的一个显示为粗体。这是我用于选项列表的基本代码。我希望“option1”能够大胆,并且所有其他选项都是正常的。有没有什么办法可以实现这一点,而不使用自定义textviews或什么?

CharSequence options[] = new CharSequence[] {"option1", "option2", "option3"}; 

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
builder.setTitle("Pick an option"); 
builder.setItems(options, new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     // my actions 
    } 
}); 
builder.show(); 

回答

6

你可以做SpannableString

String b = "boldOption"; 
SpannableString boldOption = new SpannableString(b); 
boldOption.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, b.length(),0); 
CharSequence options[] = new CharSequence[] {boldOption, "option2", "option3"}; 

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
builder.setTitle("Pick an option"); 
builder.setItems(options, new DialogInterface.OnClickListener() { 
@Override 
public void onClick(DialogInterface dialog, int which) { 
    // my actions 
} 
}); 
builder.show(); 
0

您可以使用您的选项1 Html.fromHtmlHtml.fromHtml("<b>option1</b>")

CharSequence options[] = new CharSequence[] {Html.fromHtml("<b>option1</b>"), "option2", "option3"}; 

     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setTitle("Pick an option"); 
     builder.setItems(options, new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       // my actions 
      } 
     }); 
     builder.show(); 
相关问题