AlertDialog按钮 - 如何设置颜色并将文本字体更改为+ ve和-ve按钮

时间:2013-01-20 03:26:51

标签: android android-layout android-alertdialog android-button android-dialog

我正在尝试将颜色设置为带有绿色和红色的正负按钮,并为按钮中的文本设置一些字体。能不能让我知道如何做到这一点?

public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()){
case R.id.bNewTicket:    
    // custom dialog 
    LayoutInflater li = LayoutInflater.from(context);
    final View promptsView = li.inflate(R.layout.homepagedialognewticket, null);
    AlertDialog.Builder alertDialogBuilder  = new AlertDialog.Builder(context); 
    alertDialogBuilder.setView(promptsView); 


    // set dialog message
    alertDialogBuilder.setPositiveButton("Go", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog,int id) { 

            }
          })
          .setNegativeButton("Back",new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog,int id) {  
            }
          });

    AlertDialog alertDialog = alertDialogBuilder.create(); 
    alertDialog.show();  
    break;  
}
}

1 个答案:

答案 0 :(得分:0)

可能有两种方法可以完成你所追求的目标。

1)使按钮成为自定义布局的一部分。

您可能需要创建普通Dialog而不是AlertDialog,以防止自动添加按钮。

2)设置AlertDialog后尝试进行修改。

您可以在创建AlertDialog后通过调用getButton(int)并传入指示正,负和中性按钮的常量来获取默认按钮。从那以后,您应该能够根据颜色等方式设置按钮的样式。

设置自定义字体可能会稍微难以实现这种方式。您可以尝试将按钮文本设置为TextAppearanceSpanTypefaceSpan并将其传递给相关按钮,但是从内存中它们仅支持平台字体。扩展任何一个也支持从例如加载某些字体文件并不是太棘手。资产文件夹,但你必须自己做一些令人费解的事情。


选项1肯定会给你最大的灵活性,可能需要更少的摆弄。我可能会走这条路。