Custom dialog, android custom dialog
(1) You need to prepare the style of the custom dialog box, that is, a layout file.
<? Xml version = "1.0" encoding = "UTF-8"?> <LinearLayout xmlns: android = "http://schemas.android.com/apk/res/android" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: background = "@ drawable/dialog_bg" android: gravity = "center_vertical | kernel" android: orientation = "vertical"> <RelativeLayout android: layout_width = "321dp" android: layout_height = "wrap_content" android: layout_weight = "7.45" android: paddingLeft = "30dip" android: paddingTop = "10dip"> <ImageView android: id = "@ + id/dialog_title_image" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_alignParentLeft = "true" android: background = "@ drawable/dialog_title_image"/> <TextView android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_centerInParent = "true" android: layout_marginLeft = "10dip" android: layout_toRightOf = "@ id/dialog_title_image" android: text = "Title" android: textColor = "#000000" android: textSize = "30sp"/> </RelativeLayout> <TextView android: layout_width = "270dp" android: layout_height = "1dip" android: layout_marginTop = "5dip" android: background = "@ drawable/hide"/> <TextView android: layout_width = "fill_parent" android: layout_height = "wrap_content" android: layout_marginLeft = "30dip" android: layout_marginTop = "10dip" android: text = "This is a custom dialog" android: textColor = "#000000"/> <RelativeLayout android: layout_width = "fill_parent" android: layout_height = "wrap_content" android: layout_weight = "3.64" android: gravity = "bottom | center_horizontal" android: paddingBottom = "10dip" android: paddingTop = "10dip"> <Button android: id = "@ + id/dialog_button_cancel" android: layout_width = "100dip" android: layout_height = "wrap_content" android: layout_alignParentLeft = "true" android: layout_marginLeft = "16dp" android: background = "@ drawable/btn_input_completed_normal" android: text = "cancel"/> <Button android: id = "@ + id/dialog_button_ OK" android: layout_width = "100dip" android: layout_height = "wrap_content" android: layout_alignBaseline = "@ + id/dialog_button_cancel" android: layout_alignBottom = "@ + id/dialog_button_cancel" android: layout_marginLeft = "48dp" android: layout_toRightOf = "@ + id/dialog_button_cancel" android: text = "OK"/> </RelativeLayout> </LinearLayout>
Layout file Image
(2) Write a custom dialog class to load the preceding layout file.
package com.example.zidingyidialog;import android.app.Dialog;import android.content.Context;import android.os.Bundle;public class mydialog extends Dialog { Context context; public mydialog(Context context) { super(context); // TODO Auto-generated constructor stub this.context = context; } public mydialog(Context context, int theme){ super(context, theme); this.context = context; } @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); this.setContentView(R.layout.dialog); }}
(3) Next, write how to start the custom dialog box and how to listen to the buttons in the dialog box for response.
Package com. example. zidingyidialog; import android. app. activity; import android. app. dialog; import android. content. dialogInterface; import android. content. dialogInterface. onShowListener; import android. OS. bundle; import android. view. menu; import android. view. menuItem; import android. view. view; import android. view. view. onClickListener; import android. widget. button; import android. widget. toast; public class MainActivity extends Activity {/** Called when the activity is first created. */private Dialog dialog; public void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R. layout. activity_main); Button button = (Button) findViewById (R. id. button1); button. setOnClickListener (new OnClickListener () {@ Override public void onClick (View v) {// initialize a custom Dialog dialog = new mydialog (MainActivity. this, R. style. myDialog); dialog. show (); Button button = (Button) dialog. findViewById (R. id. dialog_button_ OK); button. setOnClickListener (l); Button butto = (Button) Diener. findViewById (R. id. dialog_button_cancel); butto. setOnClickListener (l1) ;}}) ;}onclicklistener l = new OnClickListener () {@ Overridepublic void onClick (View v) {dialog. dismiss () ;}}; OnClickListener l1 = new OnClickListener () {@ Overridepublic void onClick (View v) {Toast. makeText (MainActivity. this, "hhahha", Toast. LENGTH_SHORT ). show ();}};;}
Add the following content to styles under values to facilitate the control of the dialog box format.
</style> <style name="MyDialog" parent="@android:Theme.Dialog"> <item name="android:windowFrame">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowBackground">@drawable/dialog_bg</item> <item name="android:windowIsFloating">true</item> <item name="android:windowContentOverlay">@null</item> </style>
The above are the basic steps for adding a custom dialog box