usually your layout is defined in an xml file (in res/layout) and in your Java-like Android code you can reference it so:
d.setContentView(R.layout.dialog_view); where d is an instance of AlertDialog. and dialog_view.xml could contain: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/ android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <!-- android:title="any title" does not work --> <TextView android:id="@+id/label" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="The search is case sensitive:"/> <EditText android:id="@+id/entry" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@android:drawable/editbox_background" android:layout_below="@id/label"/> <Button android:id="@+id/find" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/entry" android:layout_alignParentLeft="true" android:layout_marginRight="10dip" android:text="Find Next" /> <Button android:id="@+id/cancel_search" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/find" android:layout_alignTop="@id/find" android:text="Cancel" /> </RelativeLayout> The above answers your direct question but there are a few different ways to use such a layout. I know 5 techniques for setting up an AlertDialog (details are below): 1. Dialog parent class: if you need to roll a simple version. 2. AlertDialog plain (without the builder): not recommended but works. 3. AlertDialog.Builder: classic; probably better than the above 2. 4. Using the two Activity methods that are called by Android: great for persisting AlertDialog instances = better performance. 5. Using an Activity that looks like a Dialog: for fancy stuff. Details: 1. Dialog parent class: a mix of code and xml layout Dialog d = new Dialog(this); //*this* is the Activity Window w = d.getWindow((; w.setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND, WindowManager.LayoutParams.FLAG_BLUR_BEHIND); d.setTitle("Dialog (not alert)"); //your layout defined in an xml file (in res/layout) d.setContentView(R.layout.dialog_view); d.show(); 2. AlertDialog plain (not recommended but works) I sometimes use this technique in an uncaughtException method. AlertDialog error = new AlertDialog(this){ //*this* is the Activity because it needs the Context. protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); } }; error.setTitle("Anomaly Detected"); error.setMessage("A possible defect has been detected in " +getString(R.string.app_name) +" v. "+getString(R.string.versionString) +"\nFor support, please write m...@myplace.com"); error.show(); There are more complex versions of this technique but the other techniques below are better. 3. The AlertDialog.Builder technique: recommended, as are # 4 and 5 below. AlertDialog.Builder bookmarkDialog = new AlertDialog.Builder(this); //*this* is the Activity because it needs the Context. bookmarkDialog.setIcon(android.R.drawable.ic_menu_myplaces); bookmarkDialog.setTitle("Bookmark "+getString(R.string.app_name)); AlertDialog ad = bookmarkDialog.create(); ad.requestWindowFeature(Window.FEATURE_LEFT_ICON); //more setup here... //setup completed: bookmarkDialog.show(); 4. Using Activity methods called by Android: good for persisting AlertDialog instances 4.1. you override these 2 methods: onCreateDialog(int yourId) //called by Android the first time that you call showDialog. //You may use the AlertDialog.Builder technique in this method. onPrepareDialog(int yourId, Dialog dialog) //called by Android each time the dialog is shown. //You don't create any dialog instance here; use the one given. //You can do things like dialog.setMessage("new message with new info"); 4.2. and you do this somewhere in your code: showDialog(yourUniqueDialogId); 4.3. yourUniqueDialogId must be defined by you, usually as a static field; must be an int. 5. Using an Activity that looks like a Dialog: <activity android:name=".ActivityDialog1" android:theme="@android:style/Theme.Dialog"> </activity> And you manage the Activity like any another Activity. sm1 On Mar 22, 2:56 am, Lucius Fox <lucius.fo...@gmail.com> wrote: > Hi, > > How is android's AlertDialog layout define? Is there a layout.xml file > corresponding to the AlertDialog? > I have looked at AlertDialog implementation, But i don't figure out > how that is being layout (e.g. the location of the button, the > location of text) Where are they defined? And how can I change that? > > Thank you. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---