2009-12-10 57 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現在包括默認的行。所以你會在屏幕上看到兩行。