2012-01-21 158 views
6

我創建通過下面的代碼定製alertdialog:安卓:自定義AlertDialog

AlertDialog.Builder builder; 
AlertDialog alertDialog; 

LayoutInflater inflater = (LayoutInflater)ActivityName.this.getSystemService(LAYOUT_INFLATER_SERVICE); 
View layout = inflater.inflate(R.layout.custom_layout,(ViewGroup)findViewById(R.id.layout_root)); 

       builder = new AlertDialog.Builder(getParent()); 
       builder.setView(layout); 
       alertDialog = builder.create(); 
       alertDialog.show(); 

問題是彈出與具有所有權自己空隙默認對話框背景包圍(如標題是沒有設置)。我如何刪除這個。我曾試圖通過ContextThemeWrapperbuilder = new AlertDialog.Builder(new ContextThemeWrapper(getParent(), R.style.CustomDialogTheme));

但它不工作。我怎麼做?!!!提前致謝。下面 自定義XML樣式給出:

<style name="CustomDialogTheme" parent="android:style/Theme.Dialog.Alert"> 
      <item name="android:windowIsFloating">false</item> 
      <item name="android:windowNoTitle">true</item> 
     </style> 

This is the output on the emulator

+0

那麼不顯示標題是要迷惑用戶,你應該能顯示在對話框標題,因爲它的預期標準。 – JoxTraex

+0

我在佈局中附加了標題(例如,「Set As ...」,如你所見) – IronBlossom

回答

16

使用以下

Dialog dialog = new Dialog(this, android.R.style.Theme_Translucent_NoTitleBar); 

虛增您的佈局和視圖設置對話框的內容和

dialog.setContentView(view); 
+1

謝謝jitendra!它刪除了默認背景,但我現在有另一個問題。那麼,我正在工作的應用程序被設置爲Theme.NoTitleBar.Fullscreen,但是當對話框彈出頂部標題欄再次下滑並且對話框不在中心位置時,而是在窗口的左上角(默認)位置時。你能幫我解答嗎? – IronBlossom

+1

使用對話框對話框= new Dialog(this,android.R.style.Theme_Translucent_NoTitleBar.Fullscreen); – jeet

+0

我解決了將對話框居中的問題!謝謝 – IronBlossom

7
AlertDialog dialog = new AlertDialog.Builder(this) 
.setView(getLayoutInflater().inflate(R.layout.custom_dialog, null)) 
.create(); 

爲了監聽UI事件:

View view = getLayoutInflater().inflate(R.layout.custom_dialog, null); 
Button btn = (Button)view.findViewById(R.id.the_id_of_the_button); 
btn.setOnClickListener(blah blah); 
AlertDialog dialog = new AlertDialog.Builder(this) 
    .setView(view) 
    .create();