android-Android:怎么创建一个没有title的dialog?

问题描述

Android:怎么创建一个没有title的dialog?
我试图在android生成一个自定义的对话框。我像下边这样创建我的对话框:

dialog = new Dialog(this);dialog.setContentView(R.layout.my_dialog);

除了对话框的title,其他的都很好。就算我不设置对话框的title,当对话框弹出的时候仍然有一个空白的地方。
有什么方法可以隐藏掉这个空白的地方么?
我用 AlertDialog试了,但是看起来布局设置不是很正确:

        LayoutInflater inflater = (LayoutInflater) this                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);        View view = inflater.inflate(R.layout.map_dialog null);        AlertDialog.Builder builder = new AlertDialog.Builder(this);        builder.setView(view);//            dialog = new Dialog(this);//            dialog.setContentView(R.layout.map_dialog);        dialog = builder.create();        ((TextView) dialog.findViewById(R.id.nr)).setText(number);

如果我用这个代码,我会在最后一行得到一个空指针异常。对话框不是空的,所以我尝试查找的TextView不存在。
如果在我使用对话框的构造函数部分取消注释的部分,一切都很好,除了我的对话框布局上的title部分。

解决方案

你需要使用到 AlertDialog。

在这么短的总结,你的代码就像是从官网中复制的一样。那需要一个自定义布局文件,给它一些基本的文本和图标,然后创建它。然后显示它,再用alertDialog.show()

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();

解决方案二:
当从零开始创建一个对话框的话,FEATURE_NO_TITLE起作用,像这样:

Dialog dialog = new Dialog(context);dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

但是创建AlertDialog的话它不起作用(或者使用Builder),因为它已经禁用了标题和在内部使用自定义。

我已经检查了SDK资源,我认为它无法起作用。所以为了把底部的空白删除,我认为唯一的解决方法就是从零创建一个自定义的对话框,直接通过使用对话框类。

同样,也可以用一个样式,例如在styles.xml:

<style name=""FullHeightDialog"" parent=""android:style/Theme.Dialog"">   <item name=""android:windowNoTitle"">true</item></style>

然后

Dialog dialog = new Dialog(context R.style.FullHeightDialog);

解决方案三:
你可以通过下边的代码去掉title,这个对话框的名字是我的

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);where dialog is name of my dialog .
时间: 2024-11-21 04:55:46

android-Android:怎么创建一个没有title的dialog?的相关文章

vpn server amdroid-如何在android 设备上创建一个vpn server

问题描述 如何在android 设备上创建一个vpn server 怎么创建一个手机端的 vpn server,怎么创建啊 找了好多 就只有client的 解决方案 用openvpn.建立server

android studio-AS怎么创建一个有继承父类的类??

问题描述 AS怎么创建一个有继承父类的类?? 在eclipse中建立class有supperclass选项 但是android studio里中没有supperclass这个选项.如图所示,那么我想要在AS里创建一个有继承父类的类要怎么创建??? 解决方案 这么久了,还是没人回答,,,同问 解决方案二: 不能,只能手动extends继承

Android官方入门文档[1]创建一个Android项目

Android官方入门文档[1]创建一个Android项目   创建一个Android项目   这节课教你1.创建与Android Studio中的一个项目2.创建使用命令行工具项目 你也应该阅读•管理项目 Creating an Android Project This lesson teaches you to1.Create a Project with Android Studio2.Create a Project with Command Line Tools You should

1.1、Android Studio创建一个项目

Android Studio中的项目包含一个或多个模块.本节帮助你创建一个新的项目. 创建一个新的项目 如果你之前没有打开项目,Android Studio显示欢迎页面,通过点击Start a New Android Studio project.来创建一个新的项目. 如果你之前已经打开了项目,Android Studio显示开发环境.通过File > New > New Project来创建一个新的项目. 下一个窗口让你设置应用的名称,包名和项目的位置. 输入项目的各项值,点击Next. 选

android如何在activity 中启动和创建一个widget?

问题描述 如题android如何在activity 中启动和创建一个widget? 问题补充:飞雪无情 写道 解决方案 要是在activity创建一个桌面上的widget的话 我试过是不行的.但是可以实现widget里创建一个activity.解决方案二:dialog也是一种widget,都差不多的.按你说的这个意思就是编程的方式了,不用xml 布局文件,你可以这样写public class HelloAndroid extends Activity { /** Called when the

ubuntu-关于命令行创建一个android test-project

问题描述 关于命令行创建一个android test-project 在适应IDE(例如Eclipse)创建Android test project时可以将test target project设置为this project,那么如何在命令行创建一个android test project ? 如果使用 android create test-project -p . -m . 会报错:Error: No AndroidManifest.xml file found in the main pr

创建一个基于 Kotlin 的 Android 项目(下集)

本文讲的是创建一个基于 Kotlin 的 Android 项目(下集), 在先前的文章中,我们从零开始新建了一个项目,并且为小猫咪应用调整了 build.gradle. 接下来就是针对应用的基础部分编写代码了. 数据模型 此应用的一个主要特征是通过网络从 http://thecatapi.com/ 中解析数据. 完整的 API 如此调用:http://thecatapi.com/api/images/get?format=xml&results_per_page=10 API 返回一个 XML 

《精通移动App测试实战:技术、工具和案例》一1.7 创建一个Android项目

1.7 创建一个Android项目 前面已经完成了Android开发环境的搭建工作,现在就让我们一起来编写一个简单的Android程序.这里我们要实现一个两个整型数字相加的程序. 1.7.1 创建一个新的Android项目 启动Eclipse,单击"File > New > Android Application Project"菜单项,如图1-42所示. 1.7.2 如何填写Android项目信息 在弹出的图1-43所示界面中,"Application Name

Android下创建一个sqlite数据库

在Android平台上,集成了一个嵌入式关系型数据库-SQLite,SQLite3支持 NULL.INTEGER.REAL(浮点数字).TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有五种,但实际上sqlite3也接受varchar(n).char(n).decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型. SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么.SQLite可以解析大部分标准