2009-12-10 83 views
2
public class MessageDisplayDialog extends Dialog implements OnClickListener 

{ 

    public MessageDisplayDialog(Context context, String title, String message) 
    { 
     super(context); 
     setTitle(title); 
     getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.color.default_text_color); 
     Log.v(getClass().getSimpleName(), "MessageDisplayDialog"); 
     LinearLayout objLinearLayout = new LinearLayout(context); 
     LinearLayout objButtonLayout = new LinearLayout(context); 

     TextView objMesaageView = new TextView(context); 
     objMesaageView.setText(message); 
     objMesaageView.setTextColor(Color.WHITE); 
     objMesaageView.setGravity(Gravity.CENTER_HORIZONTAL); 
     objMesaageView.setPadding(0, 0, 0, 10); 

     Button okButton = new Button(context); 
     okButton.setText(" OK "); 
     okButton.setOnClickListener(this); 
     okButton.setWidth(100); 
     objButtonLayout.addView(okButton); 
     objButtonLayout.setGravity(Gravity.CENTER_HORIZONTAL); 
     objButtonLayout.setPadding(0, 5, 0, 0); 
     objButtonLayout.setBackgroundColor(Color.LTGRAY); 

     objLinearLayout.setOrientation(LinearLayout.VERTICAL); 
     objLinearLayout.addView(objMesaageView); 
     objLinearLayout.addView(objButtonLayout); 

     setContentView(objLinearLayout); 
     //LayoutParams param = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
     //this.addContentView(objLinearLayout, param); 
    } 

    public void onClick(View v) 
    { 
     this.dismiss(); 
    } 
} 

但是对话框没有在标题下面显示栏,如何破解它。Android自定义对话框类标题问题

回答

3

我认为你的问题已经在这个线程

Android - change custom title view at run time

请做一些搜索和提问之前接受的答案被回答。

+3

伴侣我不需要更改标题....我的对话框不显示标题下的分隔符...我需要解决我的那个查询...请阅读问题之前跳转到随机性的结论 – 2009-12-10 13:29:53

+3

为什么你接受了这个答案吗? – Janusz 2010-04-15 09:30:42

2

我觉得冠军和AlertDialog,不是基础Dialog类的内置的对话框是部分消息之间的水平边界,虽然我可能是完全错了。无论如何,只要我试图做类似于你正在做的事情,那条水平线就会消失,我从来没有能够找回它。

我最终只写了自己的对话框布局XML文件,并使用<shape> drawable创建了自己的水平线。实际上,创建您自己的完全自定义的Dialog布局非常简单,并且可以更好地控制对话框的外观。

1

使用两行代码删除dialoge标题

Dialog dialog = new Dialog(this); 
dialog.requestWindowFeature(dialog.getWindow().FEATURE_NO_TITLE); 
2

这是旧的,我知道,但FYI绘制自己的路线上的自定义对话框的解决办法是不兼容ICS。

它会同时显示您的线路和ICS现在包括默认的行。所以你会在屏幕上看到两行。