`

创建自定义对话框

阅读更多

如果你想自定义一个对话框,你可以使用布局元素来创造你的对话框的布局。定义好布局后,将根View对象或者布局资源ID传给setContentView(View).
例如,创建如图所示的对话框:
创建一个xml布局custom_dialog.xml:
view plain
http://schemas.android.com/apk/res/android" 
              android:id="@+id/layout_root" 
              android:orientation="horizontal" 
              android:layout_width="fill_parent" 
              android:layout_height="fill_parent" 
              android:padding="10dp" 
              > 
                   android:layout_width="wrap_content" 
               android:layout_height="fill_parent" 
               android:layout_marginRight="10dp" 
               /> 
                  android:layout_width="wrap_content" 
              android:layout_height="fill_parent" 
              android:textColor="#FFF" 
              /> 
该xml定义了一个LinearLayout中的一个ImageView 和一个TextView。
将以上布局设为对话框的content view,并且定义ImageView 和 TextView的内容:
view plain
Context mContext = getApplicationContext(); 
Dialog dialog = new Dialog(mContext);  
dialog.setContentView(R.layout.custom_dialog); 
dialog.setTitle("Custom Dialog"); 
TextView text = (TextView) dialog.findViewById(R.id.text); 
text.setText("Hello, this is a custom dialog!"); 
ImageView image = (ImageView) dialog.findViewById(R.id.image); 
image.setImageResource(R.drawable.android); 
在初始化Dialog之后,使用setContentView(int),将布局资源id传给它。现在Dialog有一个定义好的布局,你可以使用findViewById(int)来找到该元素的id并修改它的内容。
  使用前面所讲的方法显示对话框。
  一个使用Dialog类建立的对话框必须有一个标题。如果你不调用setTitle(),那么标题区域会保留空白。如果你不希望有一个标题,那么你应该使用AlertDialog类来创建自定义对话框。然而,由于一个AlertDialog使用AlertDialog.Builder类来建立最方便,所以你没有方法使用setContentView(int),而是只能使用setView(View)。该方法接受一个View对象,所以你需要从xml中展开你的根View。
  要展开一个xml布局,使用 getLayoutInflater() (或 getSystemService())取得LayoutInflater,然后调用inflate(int, ViewGroup),第一个参数为布局id,而第二个参数为根view的id。现在,你可以使用展开后的布局来找到View对象并定义ImageView和TextView元素的内容。然后实例化AlertDialog.Builder并使用setView(View)来为对话框设置展开后的布局。例如:
view plain
AlertDialog.Builder builder; 
AlertDialog alertDialog;  
Context mContext = getApplicationContext(); 
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE); 
View layout = inflater.inflate(R.layout.custom_dialog, 
                               (ViewGroup) findViewById(R.id.layout_root)); 
TextView text = (TextView) layout.findViewById(R.id.text); 
text.setText("Hello, this is a custom dialog!"); 
ImageView image = (ImageView) layout.findViewById(R.id.image); 
image.setImageResource(R.drawable.android); 
builder = new AlertDialog.Builder(mContext); 
builder.setView(layout); 
alertDialog = builder.create(); 
使用AlertDialog来自定义对话框,可以利用其内置特性例如按钮、选择列表、标题、图标等。
分享到:
评论

相关推荐

    使用Orca在VS安装项目中创建自定义对话框

    这时,我们可以利用Orca这款强大的工具来创建自定义对话框,增强安装体验。 Orca是由微软提供的Windows Installer数据库表编辑器,主要用于编辑Windows Installer相关的文件,如.msi、.msm、.msp等。通过Orca,我们...

    火山PC创建自定义对话框例子

    在这个例子中,我们将深入探讨如何利用火山PC来创建自定义对话框,包括动态创建组件和画板的绘制。 首先,自定义对话框不同于标准的系统对话框,它允许开发者根据应用需求设计独特的外观和交互方式。在Windows编程...

    创建自定义对话框dialog,弹出模式窗口

    创建自定义对话框dialog,弹出模式窗口 用于创建自定义对话框的轻量级(约 4.5 KB)代码库。四种对话框可用: alerts(出错), warnings(警告), prompts(提示), success(成功)。利用一个简单的函数,你可以自定义对话框...

    swing中自定义对话框的几种实际用法

    而JDialog则是一个通用的对话框类,可以用于创建更复杂的自定义对话框。 二、自定义对话框的创建 自定义对话框通常基于JDialog类来实现。首先,你需要创建一个JDialog实例,然后添加需要的组件,如按钮、文本字段、...

    InstallShield自定义对话框浅谈

    - 用户输入:如果安装程序需要获取特定的信息(如用户名、注册码等),可以创建自定义对话框来收集这些信息。 - 特殊提示:当需要告知用户一些特别的注意事项或条款时,可以通过自定义对话框呈现这些信息。 - ...

    自定义对话框的实现

    创建自定义对话框的第一步是创建一个新的布局文件,这个文件将定义对话框的视图结构。在XML中,我们可以添加各种控件,如输入框、按钮、文本视图等,并设置相应的样式和属性,以达到预期的设计效果。例如,对于一个...

    android 使用alertdialog创建自定义对话框

    在本篇文章中,我们将深入探讨如何在Android中使用`AlertDialog`来创建自定义对话框。 一、`AlertDialog`基础 1. 创建`AlertDialog.Builder` 首先,我们需要通过`AlertDialog.Builder`来构建对话框。`Builder`模式...

    android自定义对话框、dialog

    首先,我们从创建自定义对话框的基本步骤开始: 1. **创建Dialog布局** - 在`res/layout`目录下创建一个新的XML布局文件,定义对话框的UI元素。例如,你可以包含文本视图、按钮或其他控件。布局设计应简洁明了,以...

    Android例子源码自定义对话框

    通过分析源码,你可以学习到如何将这些步骤整合到实际项目中,创建出符合自己需求的自定义对话框。这不仅有助于提升应用的用户体验,也是提高Android开发技能的重要实践。 总的来说,自定义对话框在Android应用开发...

    自定义对话框实例,实现

    在IT行业中,自定义对话框是一种常见的用户界面元素,它允许开发者根据应用需求创建具有独特设计和功能的对话框,从而提升用户体验。本实例将详细讲解如何实现自定义对话框,以及通过源码分析来帮助你更好地理解这一...

    卓开发:弹出自定义对话框自动播放视频(仿视频广告效果,使用mediaplayer和surfaceview做播放器)

    在创建自定义对话框之前,我们需要先初始化MediaPlayer对象。这通常涉及到设置数据源(DataSource),准备播放器(prepare()),并监听播放状态。 ```java MediaPlayer mediaPlayer = new MediaPlayer(); ...

    WPF 自定义对话框 超级完美版

    4. **自定义控件**:有时,标准的WPF控件无法满足特定需求,这时可以创建自定义控件。例如,你可能需要一个特殊的输入框,能够处理特定的数据格式或者提供额外的反馈。 5. **模态和非模态对话框**:模态对话框阻止...

    自定义对话框

    2. 使用库和框架:许多UI库和框架提供了创建自定义对话框的便利工具,比如Java中的JOptionPane、Android的Material Design库、iOS的CocoaPods库等。这些库通常简化了对话框的创建过程,让开发者可以快速实现所需功能...

    安卓自定义对话框

    本文将深入探讨如何在Android中创建自定义对话框,并介绍一个名为"CrookDialog"的类,它提供了三种不同的样式。 首先,我们来理解一下Android中的对话框基础。Android系统提供了多种类型的对话框,如AlertDialog、...

    微信小程序自定义对话框

    本文将深入探讨如何在微信小程序中创建自定义对话框,以及如何添加弹出和隐藏的动画效果。 首先,我们要理解微信小程序的基础架构。小程序基于WXML(WeiXin Markup Language)和WXSS(WeiXin Style Sheets)进行视...

    从自定义对话框继承出新的子对话框 step3

    在C++或.NET环境中,我们可以使用MFC(Microsoft Foundation Classes)或WinAPI来创建自定义对话框。 步骤3可能涉及以下内容: 1. 创建子对话框类:首先,我们需要定义一个新的类,它是自定义对话框类的派生类。在...

    Android编程实现在自定义对话框中获取EditText中数据的方法

    本文实例讲述了Android编程实现在自定义对话框中获取EditText中数据的方法。分享给大家供大家参考,具体如下: 在项目中忽然遇到这样的问题,需要自定义对话框,对话框需要有一个输入框,以便修改所选中的价格,然后...

    Qt自定义对话框Demo

    在Qt中,你可以创建自定义对话框(Custom Dialog)来满足特定需求,这允许你设计一个完全符合应用程序风格的对话框。通常,自定义对话框是通过创建一个继承自`QDialog`的自定义类,并在这个类中定义对话框的外观和...

    InstallShield自定义对话框使用IP控件

    在软件安装过程中,为了提供更个性化的用户体验,开发者经常需要创建自定义对话框。InstallShield是一款强大的安装制作工具,它允许用户在安装程序中添加自定义对话框,以满足特定需求。本文将深入探讨如何在...

Global site tag (gtag.js) - Google Analytics