{"id":13688,"date":"2024-03-15T07:39:16","date_gmt":"2024-03-15T07:39:16","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-is-dialogfragment-used-in-android\/"},"modified":"2025-08-05T22:04:21","modified_gmt":"2025-08-05T22:04:21","slug":"how-is-dialogfragment-used-in-android","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-is-dialogfragment-used-in-android\/","title":{"rendered":"Android DialogFragment Tutorial"},"content":{"rendered":"<p>DialogFragment is a unique type of fragment that is used to display dialog boxes or pop-up windows. It provides a reusable way to display and manage dialog boxes, allowing the state of the dialog to be saved when the screen is rotated or the configuration changes.<\/p>\n<p>The usage of DialogFragment is as follows:<\/p>\n<ol>\n<li>Create a subclass that inherits from DialogFragment.<\/li>\n<li>Override the onCreateDialog() method in the subclass to create and return an AlertDialog or other dialog instance.<\/li>\n<li>Use FragmentManager to create and display an instance of DialogFragment where you need to show a dialog.<\/li>\n<li>You can customize the layout of a dialog and add interactive controls by overriding the onCreateView() method.<\/li>\n<li>You can handle the event of a dialog being dismissed by either overriding the onDismiss() method or implementing the DialogInterface.OnDismissListener interface.<\/li>\n<li>You can pass arguments between DialogFragments using the getArguments() method.<\/li>\n<\/ol>\n<p>The sample code is as follows:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">MyDialogFragment<\/span> <span class=\"hljs-keyword\">extends<\/span> <span class=\"hljs-title class_\">DialogFragment<\/span> {\r\n\r\n    <span class=\"hljs-meta\">@NonNull<\/span>\r\n    <span class=\"hljs-meta\">@Override<\/span>\r\n    <span class=\"hljs-keyword\">public<\/span> Dialog <span class=\"hljs-title function_\">onCreateDialog<\/span><span class=\"hljs-params\">(Bundle savedInstanceState)<\/span> {\r\n        AlertDialog.<span class=\"hljs-type\">Builder<\/span> <span class=\"hljs-variable\">builder<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">AlertDialog<\/span>.Builder(getActivity());\r\n        builder.setTitle(<span class=\"hljs-string\">\"Dialog Title\"<\/span>)\r\n                .setMessage(<span class=\"hljs-string\">\"Dialog Message\"<\/span>)\r\n                .setPositiveButton(<span class=\"hljs-string\">\"OK\"<\/span>, <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">DialogInterface<\/span>.OnClickListener() {\r\n                    <span class=\"hljs-meta\">@Override<\/span>\r\n                    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">onClick<\/span><span class=\"hljs-params\">(DialogInterface dialog, <span class=\"hljs-type\">int<\/span> which)<\/span> {\r\n                        <span class=\"hljs-comment\">\/\/ \u5904\u7406\u786e\u5b9a\u6309\u94ae\u70b9\u51fb\u4e8b\u4ef6<\/span>\r\n                    }\r\n                })\r\n                .setNegativeButton(<span class=\"hljs-string\">\"Cancel\"<\/span>, <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">DialogInterface<\/span>.OnClickListener() {\r\n                    <span class=\"hljs-meta\">@Override<\/span>\r\n                    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">onClick<\/span><span class=\"hljs-params\">(DialogInterface dialog, <span class=\"hljs-type\">int<\/span> which)<\/span> {\r\n                        <span class=\"hljs-comment\">\/\/ \u5904\u7406\u53d6\u6d88\u6309\u94ae\u70b9\u51fb\u4e8b\u4ef6<\/span>\r\n                    }\r\n                });\r\n        <span class=\"hljs-keyword\">return<\/span> builder.create();\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>To initiate a DialogFragment instance where a dialog box needs to be displayed, you can use the following code.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-type\">MyDialogFragment<\/span> <span class=\"hljs-variable\">dialogFragment<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">MyDialogFragment<\/span>();\r\ndialogFragment.show(getSupportFragmentManager(), <span class=\"hljs-string\">\"dialog\"<\/span>);\r\n<\/code><\/pre>\n<p>In a DialogFragment, you can also customize the layout of the dialog by using the following method:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">@Override<\/span>\r\n<span class=\"hljs-keyword\">public<\/span> View <span class=\"hljs-title function_\">onCreateView<\/span><span class=\"hljs-params\">(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)<\/span> {\r\n    <span class=\"hljs-type\">View<\/span> <span class=\"hljs-variable\">view<\/span> <span class=\"hljs-operator\">=<\/span> inflater.inflate(R.layout.fragment_dialog, container, <span class=\"hljs-literal\">false<\/span>);\r\n    <span class=\"hljs-comment\">\/\/ \u6dfb\u52a0\u7528\u6237\u4ea4\u4e92\u63a7\u4ef6\uff0c\u5e76\u8bbe\u7f6e\u76f8\u5173\u4e8b\u4ef6\u76d1\u542c\u5668<\/span>\r\n    <span class=\"hljs-type\">Button<\/span> <span class=\"hljs-variable\">button<\/span> <span class=\"hljs-operator\">=<\/span> view.findViewById(R.id.button);\r\n    button.setOnClickListener(<span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">View<\/span>.OnClickListener() {\r\n        <span class=\"hljs-meta\">@Override<\/span>\r\n        <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">onClick<\/span><span class=\"hljs-params\">(View v)<\/span> {\r\n            <span class=\"hljs-comment\">\/\/ \u5904\u7406\u6309\u94ae\u70b9\u51fb\u4e8b\u4ef6<\/span>\r\n        }\r\n    });\r\n    <span class=\"hljs-keyword\">return<\/span> view;\r\n}\r\n<\/code><\/pre>\n<p>You can use the dismiss() method to close the dialog box.<\/p>\n<pre class=\"post-pre\"><code>dialogFragment.dismiss();\r\n<\/code><\/pre>\n<p>You can handle the event of a dialog closing by either overriding the onDismiss() method or implementing the DialogInterface.OnDismissListener interface.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">@Override<\/span>\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">onDismiss<\/span><span class=\"hljs-params\">(DialogInterface dialog)<\/span> {\r\n    <span class=\"hljs-built_in\">super<\/span>.onDismiss(dialog);\r\n    <span class=\"hljs-comment\">\/\/ \u5904\u7406\u5bf9\u8bdd\u6846\u5173\u95ed\u4e8b\u4ef6<\/span>\r\n}\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>DialogFragment is a unique type of fragment that is used to display dialog boxes or pop-up windows. It provides a reusable way to display and manage dialog boxes, allowing the state of the dialog to be saved when the screen is rotated or the configuration changes. The usage of DialogFragment is as follows: Create a [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[6,18269,18289,299,477],"class_list":["post-13688","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-android","tag-dialogfragment","tag-fragment","tag-programming","tag-ui"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Android DialogFragment Tutorial - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Master DialogFragment in Android: Create reusable dialogs that survive screen rotations with our step-by-step implementation guide.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-is-dialogfragment-used-in-android\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Android DialogFragment Tutorial\" \/>\n<meta property=\"og:description\" content=\"Master DialogFragment in Android: Create reusable dialogs that survive screen rotations with our step-by-step implementation guide.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-is-dialogfragment-used-in-android\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T07:39:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-05T22:04:21+00:00\" \/>\n<meta name=\"author\" content=\"Jackson Davis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jackson Davis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-dialogfragment-used-in-android\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-dialogfragment-used-in-android\/\"},\"author\":{\"name\":\"Jackson Davis\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\"},\"headline\":\"Android DialogFragment Tutorial\",\"datePublished\":\"2024-03-15T07:39:16+00:00\",\"dateModified\":\"2025-08-05T22:04:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-dialogfragment-used-in-android\/\"},\"wordCount\":220,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"Android\",\"DialogFragment\",\"Fragment\",\"programming\",\"UI\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-dialogfragment-used-in-android\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-is-dialogfragment-used-in-android\/\",\"name\":\"Android DialogFragment Tutorial - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T07:39:16+00:00\",\"dateModified\":\"2025-08-05T22:04:21+00:00\",\"description\":\"Master DialogFragment in Android: Create reusable dialogs that survive screen rotations with our step-by-step implementation guide.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-dialogfragment-used-in-android\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-is-dialogfragment-used-in-android\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-dialogfragment-used-in-android\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Android DialogFragment Tutorial\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\",\"name\":\"Jackson Davis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"caption\":\"Jackson Davis\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Android DialogFragment Tutorial - Blog - Silicon Cloud","description":"Master DialogFragment in Android: Create reusable dialogs that survive screen rotations with our step-by-step implementation guide.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-is-dialogfragment-used-in-android\/","og_locale":"en_US","og_type":"article","og_title":"Android DialogFragment Tutorial","og_description":"Master DialogFragment in Android: Create reusable dialogs that survive screen rotations with our step-by-step implementation guide.","og_url":"https:\/\/www.silicloud.com\/blog\/how-is-dialogfragment-used-in-android\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T07:39:16+00:00","article_modified_time":"2025-08-05T22:04:21+00:00","author":"Jackson Davis","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Jackson Davis","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-is-dialogfragment-used-in-android\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-dialogfragment-used-in-android\/"},"author":{"name":"Jackson Davis","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350"},"headline":"Android DialogFragment Tutorial","datePublished":"2024-03-15T07:39:16+00:00","dateModified":"2025-08-05T22:04:21+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-dialogfragment-used-in-android\/"},"wordCount":220,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["Android","DialogFragment","Fragment","programming","UI"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-is-dialogfragment-used-in-android\/","url":"https:\/\/www.silicloud.com\/blog\/how-is-dialogfragment-used-in-android\/","name":"Android DialogFragment Tutorial - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T07:39:16+00:00","dateModified":"2025-08-05T22:04:21+00:00","description":"Master DialogFragment in Android: Create reusable dialogs that survive screen rotations with our step-by-step implementation guide.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-dialogfragment-used-in-android\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-is-dialogfragment-used-in-android\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-is-dialogfragment-used-in-android\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Android DialogFragment Tutorial"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350","name":"Jackson Davis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","caption":"Jackson Davis"},"url":"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/13688","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=13688"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/13688\/revisions"}],"predecessor-version":[{"id":157690,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/13688\/revisions\/157690"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=13688"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=13688"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=13688"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}