2012-01-21 16 views
6

Stworzyłem niestandardowe alertdialog za pomocą następującego kodu:Android: Niestandardowe 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(); 

problemem jest pop-up jest otoczony z domyślnym Dialog tle posiadającego własną wolną przestrzeń o tytule (jak tytuł jest nie ustawiony). Jak mogę to usunąć. Próbowałem ustawić niestandardowy styl przez ContextThemeWrapper, taki jak builder = new AlertDialog.Builder(new ContextThemeWrapper(getParent(), R.style.CustomDialogTheme));

Ale to nie działa. Jak mogę to zrobić?!!! Z góry dziękuję. Niestandardowy styl xml jest podany poniżej:

<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

Nie pokazano tytuł będzie mylić użytkownika, należy pokazać tytuł w oknie dialogowym, ponieważ jej oczekiwanego standardu. – JoxTraex

+0

Umieściłem tytuł w układzie (tj. "Ustaw jako ...", jak widać) – IronBlossom

Odpowiedz

16

stosowanie następujących

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

napompować układ i ustawić widok na zawartość okna i

dialog.setContentView(view); 
+1

dzięki jitendra !! usuwa domyślne tło, ale mam teraz inny problem. To, że aplikacja działa, jest ustawiona na Theme.NoTitleBar.Fullscreen, ale kiedy okno dialogowe zostanie wyświetlone, górny pasek tytułu zsuwa się ponownie, a okno dialogowe nie znajduje się w środkowej pozycji, a raczej w lewym górnym (domyślnym) położeniu okna. Czy możesz mi w tym pomóc? – IronBlossom

+1

użyj okna dialogowego Dialog = new Dialog (this, android.R.style.Theme_Translucent_NoTitleBar.Fullscreen); – jeet

+0

i rozwiązałem problem centrowania okna dialogowego !! dzięki – IronBlossom

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

Aby słuchać na imprezach 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(); 
Powiązane problemy