android开发这种提示框alertdialog系统样式样式该怎么做

Android中自定义Dialog样式
在Android开发中,经常需要在界面上弹出一些对话框,用来提示用户输入信息或者让用户做出选择,这就是Android中的对话框功能。
  那么如何来实现这些对话框功能呢?在Android中,对话框是使用
Dialog类来实现。其中,Alertialog用于实现警告对话框;ProgressDialog用于实现带进度条的对话
框;DatePickerDialog用于实现日期选择对话框;TimePickerDialog用于实现时间选择对话框。
今天我们就以登录界面为例实现一个简单的自定义AlertDialog对话框。先看效果图:
在这个自定义的AlertDialog对话框中,我们加入了两个TextView控件(用来显示“帐号:”和“密码:”)以及两个EditText控件(用来输入“帐号”和“密码”)。
  那么如何将这些控件加入到自定义的AlertDialog对话框中呢?首先,我们需要创建一个xml布局文件来加载这些控件。这里,我创建了一个名为“logindialog.xml”的布局文件。在该布局文件中完成对上述四个控件的布局即可,具体的实现方法如下:
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"&&&
android:id="@+id/text_username"
&&&&&&&&&&&
android:layout_width="match_parent"
&&&&&&&&&&&
android:layout_height="wrap_content"
&&&&&&&&&&&
android:layout_marginLeft="10dp"
&&&&&&&&&&&
android:gravity="left"
&&&&&&&&&&&
android:text="帐号:"
&&&&&&&&&&&
android:textColor="#FFFFFF"&&&
android:id="@+id/edit_username"
&&&&&&&&&&&
android:layout_width="match_parent"
&&&&&&&&&&&
android:layout_height="wrap_content"
&&&&&&&&&&&
android:layout_marginLeft="10dp"
&&&&&&&&&&&
android:layout_marginRight="10dp"
&&&&&&&&&&&
android:gravity="left"
&&&&&&&&&&&
android:hint="请输入帐号"
&&&&&&&&&&&
android:inputType="none"
&&&&&&&&&&&
android:digits="abcdefghigklmnopqrstuvwxyz_"&&&
android:id="@+id/text_password"
&&&&&&&&&&&
android:layout_width="match_parent"
&&&&&&&&&&&
android:layout_height="wrap_content"
&&&&&&&&&&&
android:layout_marginLeft="10dp"
&&&&&&&&&&&
android:gravity="left"
&&&&&&&&&&&
android:text="密码:"
&&&&&&&&&&&
android:textColor="#FFFFFF"&&&
android:id="@+id/edit_password"
&&&&&&&&&&&
android:layout_width="match_parent"
&&&&&&&&&&&
android:layout_height="wrap_content"
&&&&&&&&&&&
android:layout_marginLeft="10dp"
&&&&&&&&&&&
android:layout_marginRight="10dp"
&&&&&&&&&&&
android:gravity="left"
&&&&&&&&&&&
android:hint="请输入密码"
&&&&&&&&&&&
android:inputType="textPassword"
&&&&&&&&&&&
android:digits=""&
完成xml布局文件的编写之后,我们需要将该xml文件动态加载并转化为View对象,然后通过AlertDialog.Builder类的setView()方法将该View对象加载进来,就可以完成自定义AlertDialog对话框的创建了。具体的实现方法如下:
&&& public
LoginDialog (Context context) {
&&&&&&&&&&&
this.mContext =
&&&&&&&&&&&
//动态加载布局生成View对象
LayoutInflater layoutInflater =
LayoutInflater.from(mContext);
View longinDialogView =
layoutInflater.inflate(R.layout.logindialog, null);
&&&&&&&&&&&
//获取布局中的控件
mUserName =
(EditText)longinDialogView.findViewById(R.id.edit_username);
mPassword =
(EditText)longinDialogView.findViewById(R.id.edit_password);
&&&&&&&&&&&
//创建一个AlertDialog对话框
longinDialog = new AlertDialog.Builder(mContext)
&&&&&&&&&&&
.setTitle("登录框")
&&&&&&&&&&&
.setView(longinDialogView)&&&&&&&&&&&&&&&
//加载自定义的对话框式样
&&&&&&&&&&&
.setPositiveButton("确定", this)
&&&&&&&&&&&
.setNeutralButton("取消", this)
&&&&&&&&&&&
.create();&
&&&&&&&&&&&
longinDialog.show();
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。android 输入框样式_搜索_中华文本库
自定义 Android 对话框 (AlertDialog) 的样式_计算机软件及应用_IT/计算机_专业资料。自定义 Android 对话框 (AlertDialog) 的样式Android...
android实现边框圆角_IT/计算机_专业资料。使用样式实现android开发中的边框圆角,很实用,android开发入门必备知识。今日推荐 89份文档 爆笑...
theme=&@style/DefaultStyle&& activity 的主题还有一些特殊设置,如 android:theme=&@android:style/Theme.Dialog& 为对话框样式设置 主题的设置也可以在代码中通过...
Android 适应任何样式 提示弹出框 Dialog 封装 在 Android 开发中,难免有各种各样的提示框,如加载数据等待框,删除确认框、输入密码 提示框等等,这些是完全可以自...
Android 用户界面---样式和主题(Styles and Themes)_计算机软件及应用_IT/计算机...例如,可以使用 Dialog 主题,让 Activity 的显示效果像一个对话框: &activity ...
Observer 样式应用于 Android 框架设计 1. Framework 的反向控制 反向控制(Inversion of Control)是应用框架(Application Framework,简称 AF)魅力的泉源。其常 见的实...
Android键钮自定义样式_计算机软件及应用_IT/计算机_专业资料。android 按钮的自定义样式Android 键钮自定义样式 现在的用户对 APP 的外观看得很重要,如果 APP 内所...
android 默认情况下提供了一些实用的主题样式,比如说 theme.dialog 可以 让你的...android:theme=&@android:style/Theme.Dialog& 将一个 Activity 显示为能话框...
Android中自定义checkbox样式_计算机软件及应用_IT/计算机_专业资料。1、首先要导入你准备用作 CheckBox 选中和补选中状态的两图片到 res 的 drawable 中,如 ...
html输入框样式_计算机软件及应用_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档 html输入框样式_计算机软件及应用_IT/计算机_专业资料。html输入框样式...
style=&?android:attr/listSeparatorTextViewStyle& 其它有用的样式 XML/HTML 代码 1. 2. 3. 4. 5. 6. android:layout_height=&?android:attr/...
安卓android样式和主题的使用_电脑基础知识_IT/计算机_专业资料。样式 ? 定义样式 ? 设置样式,在 values 文件夹下的任意文件中的&resources&中配置标签 新建 按...AlertDialog类的功能十分强大,它不仅可以生成带按钮的提示对话框,还可以生成带列表的列表对话框,概括起来有一下4种:
1.带确定、中立和取消等N个按钮的提示对话框,其中的按钮个数不是固定的,可以根据需要添加。例如,不需要中立按钮,则可以只生成带有确定和取消按钮的对话框,也可以是只需有一个按钮的对话框。
2.带列表的列表对话框
3.带多个单选列表项和N个按钮的列表对话框
4.带多个多选列表项和N个按钮的列表对话框
在使用AlertDialog类生成对话框时,常用的方法如下所示:
setTitle :为对话框设置标题
setIcon :为对话框设置图标
setMessage:为对话框设置内容
setButton:用于为提示对话框添加按钮,可以是取消按钮、中立按钮和确定按钮。需要通过为其指定int类型的whichButton参数实现,其参数可以是DialogInterface.BUTTON_POSITIVE(确定按钮)、BUTTON_NEGATIVE(取消按钮)或者BUTTON_NEUTRAL(中立按钮)。
通常情况下,使用AlertDialog类只能生成带N个按钮的提示对话框,要生成另外3种列表对话框,需要使用AlertDialog.Builder类,AlertDialog.Builder类提供的常用方法如下表:
setTitle :为对话框设置标题
setIcon :为对话框设置图标
setMessage:为对话框设置内容
setView : 给对话框设置自定义样式
setItems :设置对话框要显示的一个list,一般用于显示几个命令时
setSingleChoiceItems :用来设置对话框显示一系列的单选框
setMultiChoiceItems :用来设置对话框显示一系列的复选框
setNeutralButton & &:普通按钮
setPositiveButton & :给对话框添加&Yes&按钮
setNegativeButton :对话框添加&No&按钮
create : 创建对话框
show :显示对话框
下面通过一个具体的实例说明如何使用AlertDialog类生成提示对话框和各种列表对话框
res/layout/main.xml:
&?xml version=&1.0& encoding=&utf-8&?&
&LinearLayout xmlns:android=&/apk/res/android&
android:orientation=&vertical&
android:layout_width=&fill_parent&
android:layout_height=&fill_parent&
android:id=&@+id/layout1&
android:gravity=&center_horizontal&
&Button android:id=&@+id/button1&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:text=&显示带取消、中立和确定按钮的对话框&/&
&Button android:id=&@+id/button2&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:text=&显示列表的对话框&/&
&Button android:id=&@+id/button3&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:text=&显示带单选列表对话框&/&
&Button android:id=&@+id/button4&
android:layout_width=&wrap_content&
android:layout_height=&wrap_content&
android:text=&显示带多选列表对话框&/&
&/LinearLayout&
MainActivity:
package com.example.
import android.app.A
import android.app.AlertD
import android.app.AlertDialog.B
import android.content.DialogI
import android.content.DialogInterface.OnMultiChoiceClickL
import android.os.B
import android.view.V
import android.view.View.OnClickL
import android.widget.B
import android.widget.T
public class MainActivity extends Activity {
private boolean[] checkedI//记录各个列表项的状态
private String[]//各列表项要显示的内容
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//显示带取消、中立和确定按钮的对话框
Button button1=(Button)findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
AlertDialog alert=new AlertDialog.Builder(MainActivity.this).create();
alert.setIcon(R.drawable.ic_launcher);//设置对话框的图标
alert.setTitle(&系统提示&);//设置对话框的标题
alert.setMessage(&显示带取消、中立和确定按钮的对话框!&);//设置对话框显示的内容
//添加&取消&按钮
alert.setButton(DialogInterface.BUTTON_NEGATIVE, &取消&,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which) {
Toast.makeText(MainActivity.this, &您单击了取消按钮&, Toast.LENGTH_SHORT).show();
//添加&确定&按钮
alert.setButton(DialogInterface.BUTTON_POSITIVE, &确定&,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which) {
Toast.makeText(MainActivity.this, &您单击了确定按钮&, Toast.LENGTH_SHORT).show();
//添加&中立&按钮
alert.setButton(DialogInterface.BUTTON_NEUTRAL, &中立&,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which) {
Toast.makeText(MainActivity.this, &您单击了中立按钮&, Toast.LENGTH_SHORT).show();
alert.show();//显示对话框
//显示列表的对话框
Button button2=(Button)findViewById(R.id.button2);
button2.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
final String[] items=new String[]{&唱歌&,&跳舞&,&美术&,&远足旅行&,&摄影&};
Builder builder=new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.drawable.in);
builder.setTitle(&请选择你的爱好:&);
//添加列表项
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, &您选择了&+items[which],Toast.LENGTH_SHORT).show();
builder.create().show();//创建对话框并显示
//显示带单选列表对话框
Button button3=(Button)findViewById(R.id.button3);
button3.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
final String[] items=new String[]{&标准&,&无声&,&会议&,&户外&,&离线&};
Builder builder=new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.drawable.music);
builder.setTitle(&请选择要使用的情景模式:&);
builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, &您选择了&+items[which],Toast.LENGTH_SHORT).show();
builder.setPositiveButton(&确定&, null);
builder.create().show();//创建对话框并显示
//显示带多选列表对话框
Button button4=(Button)findViewById(R.id.button4);
button4.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
checkedItems =new boolean[]{false,true,false,true,false};//记录各列表的状态
//各列表项要显示的内容
items=new String[]{&植物大战僵尸&,&愤怒的小鸟&,&泡泡龙&,&开心消消乐&,&地铁跑酷&};
//显示带单选列表框的对话框
Builder builder=new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.drawable.setting);
builder.setTitle(&请选择您喜欢的游戏:&);
builder.setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener() {
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
checkedItems[which]=isC
//为对话框添加&确定&按钮
builder.setPositiveButton(&确定&, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
String result=&&;
for (int i = 0; i &checkedItems. i++) {
if(checkedItems[i]){
result+=items[i]+&、&;
//当result不为空时,通过消息提示框显示选择的结果
if(!&&.equals(result)){
result=result.substring(0,result.length()-1);//去掉最后的&、&号
Toast.makeText(MainActivity.this, &您选择了:[&+result+&]&,Toast.LENGTH_SHORT).show();
builder.create().show();//创建对话框并显示
效果如图:
点击第一个按钮:
点击第二个按钮:
点击第三个按钮:
点击第四个按钮:
转载请注明出处:  Activities提供了一种方便管理的创建、保存、回复的对话框机制,例如&onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int), dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog).
  onCreateDialog(int):当你使用这个回调函数时,Android系统会有效的设置这个Activity为每个对话框的所有者,从而自动管理每个对话框的状态并挂靠到Activity上。这样,每个对话框继承这个Activity的特定属性。比如,当一个对话框打开时,菜单键显示为这个Activity定义的选项菜单,音量键修改Activity使用的音频流。
  showDialog(int):&当你想要显示一个对话框时,调用showDialog(int id) 方法并传递一个唯一标识这个对话框的整数。当对话框第一次被请求时,Android从你的Activity中调用onCreateDialog(int id),你应该在这里初始化这个对话框Dialog。这个回调方法被传以和showDialog(int id)相同的ID。当你创建这个对话框后,在Activity的最后返回这个对象。
  onPrepareDialog(int, Dialog):在对话框被显示之前,Android还调用了可选的回调函数onPrepareDialog(int id, Dialog). 如果你想在每一次对话框被打开时改变它的任何属性,你可以定义这个方法。这个方法在每次打开对话框时被调用,而onCreateDialog(int) 仅在对话框第一次打开时被调用。如果你不定义onPrepareDialog(),那么这个对话框将保持和上次打开时一样。这个方法也被传递以对话框的ID,和在onCreateDialog()中创建的对话框对象。
  dismissDialog(int):当你准备关闭对话框时,你可以通过对这个对话框调用dismiss()来消除它。如果需要,你还可以从这个Activity中调用dismissDialog(int id) 方法,这实际上将为你对这个对话框调用dismiss() 方法。 如果你想使用onCreateDialog(int id) 方法来管理你对话框的状态(就如同在前面的章节讨论的那样),然后每次你的对话框消除的时候,这个对话框对象的状态将由该Activity保留。如果你决定不再需要这个对象或者清除该状态是重要的,那么你应该调用removeDialog(int id)。这将删除任何内部对象引用而且如果这个对话框正在显示,它将被消除。
下面是几种对话框的效果
  图1效果:该效果是当按返回按钮时弹出一个提示,来确保无误操作,采用常见的对话框样式。
     代码:
  创建对话框方法dialog()
protected void dialog() {&&AlertDialog.Builder builder = new Builder(Main.this);&&builder.setMessage("确认退出吗?");
&&builder.setTitle("提示");
&&builder.setPositiveButton("确认", new OnClickListener() {
&&&@Override&&&public void onClick(DialogInterface dialog, int which) {&&&&dialog.dismiss();
&&&&Main.this.finish();&&&}&&});
&&builder.setNegativeButton("取消", new OnClickListener() {
&&&@Override&&&public void onClick(DialogInterface dialog, int which) {&&&&dialog.dismiss();&&&}&&});
&&builder.create().show();&}
在onKeyDown(int keyCode, KeyEvent event)方法中调用此方法
public boolean onKeyDown(int keyCode, KeyEvent event) {&&if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {&&&dialog();&&}&&&}
  图2效果:改变了对话框的图表,添加了三个按钮
Dialog dialog = new AlertDialog.Builder(this).setIcon(&&&&&android.R.drawable.btn_star).setTitle("喜好调查").setMessage(&&&&&"你喜欢李连杰的电影吗?").setPositiveButton("很喜欢",&&&&&new OnClickListener() {
&&&&&&@Override&&&&&&public void onClick(DialogInterface dialog, int which) {&&&&&&&// TODO Auto-generated method stub&&&&&&&Toast.makeText(Main.this, "我很喜欢他的电影。",&&&&&&&&&Toast.LENGTH_LONG).show();&&&&&&}&&&&&}).setNegativeButton("不喜欢", new OnClickListener() {
&&&&@Override&&&&public void onClick(DialogInterface dialog, int which) {&&&&&// TODO Auto-generated method stub&&&&&Toast.makeText(Main.this, "我不喜欢他的电影。", Toast.LENGTH_LONG)&&&&&&&.show();&&&&}&&&}).setNeutralButton("一般", new OnClickListener() {
&&&&@Override&&&&public void onClick(DialogInterface dialog, int which) {&&&&&// TODO Auto-generated method stub&&&&&Toast.makeText(Main.this, "谈不上喜欢不喜欢。", Toast.LENGTH_LONG)&&&&&&&.show();&&&&}&&&}).create();
&&&dialog.show();
图3效果:信息内容是一个简单的View类型
new AlertDialog.Builder(this).setTitle("请输入").setIcon(&&&&&android.R.drawable.ic_dialog_info).setView(&&&&&new EditText(this)).setPositiveButton("确定", null)&&&&&.setNegativeButton("取消", null).show();
图4效果:信息内容是一组单选框
new AlertDialog.Builder(this).setTitle("复选框").setMultiChoiceItems(&&&&&new String[] { "Item1", "Item2" }, null, null)&&&&&.setPositiveButton("确定", null)&&&&&.setNegativeButton("取消", null).show();
图5效果:信息内容是一组多选框
new AlertDialog.Builder(this).setTitle("单选框").setIcon(&&&&&android.R.drawable.ic_dialog_info).setSingleChoiceItems(&&&&&new String[] { "Item1", "Item2" }, 0,&&&&&new DialogInterface.OnClickListener() {&&&&&&public void onClick(DialogInterface dialog, int which) {&&&&&&&dialog.dismiss();&&&&&&}&&&&&}).setNegativeButton("取消", null).show();
图6效果:信息内容是一组简单列表项
new AlertDialog.Builder(this).setTitle("列表框").setItems(&&&&&new String[] { "Item1", "Item2" }, null).setNegativeButton(&&&&&"确定", null).show();
图7效果:信息内容是一个自定义的布局
1.布局文件
&?xml version="1.0" encoding="utf-8"?&&LinearLayout xmlns:android=""&android:layout_height="wrap_content" android:layout_width="wrap_content"&android:background="#ffffffff" android:orientation="horizontal"&android:id="@+id/dialog"&&&TextView android:layout_height="wrap_content"&& android:layout_width="wrap_content"&&android:id="@+id/tvname" android:text="姓名:" /&&&EditText android:layout_height="wrap_content"&&android:layout_width="wrap_content" android:id="@+id/etname" android:minWidth="100dip"/&
&/LinearLayout&
2.调用代码
LayoutInflater inflater = getLayoutInflater();&&&View layout = inflater.inflate(R.layout.dialog,&&&&&(ViewGroup) findViewById(R.id.dialog));
&&&new AlertDialog.Builder(this).setTitle("自定义布局").setView(layout)&&&&&.setPositiveButton("确定", null)&&&&&.setNegativeButton("取消", null).show();
学习资料:
http://android./769
/archives/655
阅读(...) 评论()& & 写在前面& & 从事Android开发至今,一提及Android开发中使用的对话框就想起AlertDialog或者PopupWindow,我在上一篇博客中也总结了这两种对话框的使用大全,有兴趣的可靠look look Android 对话框AlertDialog,PopupWindow使用大全。由于最近在总结Android对话框的使用,就无意在网上看到Android3.0之后出现了一个新的对话框&-DialogFragment。DialogFragment对话框出现的意义& & 为什么android系统有AlertDialog,PopupWindow对话框,基本满足客户需求,为啥还要跑出一个DialogFragment对话框呢?这就要从DialogFragment的优点说起了:有和Fragment基本一致的生命周期,因此便于Activity更好的控制管理DialogFragment。 随屏幕旋转(横竖屏幕切换)DialogFragment对话框随之自动调整对话框大小。而AlertDialog和PopupWindow随屏幕切换而消失。 DialogFragment的出现解决 横竖屏幕切换Dialog消失的问题。DialogFragment对话框的使用基础对话框& & 代码示例:&code class="hljs" d=""&package com.xjp.import android.app.Fimport android.app.FragmentTimport android.os.Bimport android.support.v7.app.ActionBarAimport android.view.Vpublic class MainActivity extends ActionBarActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
public void buttonClick(View view) {
showDialog();
private void showDialog() {
* 为了不重复显示dialog,在显示对话框之前移除正在显示的对话框。
FragmentTransaction ft = getFragmentManager().beginTransaction();
Fragment fragment = getFragmentManager().findFragmentByTag(basicDialog);
if (null != fragment) {
ft.remove(fragment);
* 0:默认样式
* 1:无标题样式
* 2:无边框样式
* 3:不可输入,不可获得焦点样式
* 可根据参数不同执行测试这几种样式的对话框。
BasicDialogFragment dialogFragment = BasicDialogFragment.newInstace(0);
dialogFragment.show(ft, basicDialog);
}}//DialogFragment代码:package com.xjp.import android.app.DialogFimport android.os.Bimport android.support.annotation.Nimport android.view.LayoutIimport android.view.Vimport android.view.ViewGimport android.widget.TextV/** * Description:基础对话框 * User: xjp * Date:
* Time: 8:44 */public class BasicDialogFragment extends DialogFragment {
public static BasicDialogFragment newInstance(int style) {
BasicDialogFragment dialogFragment = new BasicDialogFragment();
Bundle bundle = new Bundle();
bundle.putInt(style, style);
dialogFragment.setArguments(bundle);
return dialogF
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int styleNum = getArguments().getInt(style, 0);
int style. = 0;
switch (styleNum) {
style. = DialogFragment.STYLE_NORMAL;//默认样式
style. = DialogFragment.STYLE_NO_TITLE;//无标题样式
style. = DialogFragment.STYLE_NO_FRAME;//无边框样式
style. = DialogFragment.STYLE_NO_INPUT;//不可输入,不可获得焦点样式
setStyle(style, 0);//设置样式
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {//
getDialog().setTitle(退出微信);//添加标题//
getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题
View view = inflater.inflate(R.layout.fragent_basic_dialog, container);
TextView title = (TextView) view.findViewById(R.id.title);
title.setText(微信退出);
TextView message = (TextView) view.findViewById(R.id.message);
message.setText(是否退出微信,退出微信之后不能受到消息。是否退出微信,退出微信之后不能受到消息。 +
是否退出微信,退出微信之后不能受到消息。是否退出微信,退出微信之后不能受到消息。 +
是否退出微信,退出微信之后不能受到消息。);
view.findViewById(R.id.no).setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
dismiss();
view.findViewById(R.id.yes).setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
dismiss();
}}//布局代码:&li&&textview android:id="@+id/title" android:layout_gravity="center" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="基础对话框" android:textcolor="#ff0000"&&view android:background="#ff009688" android:layout_height="2dp" android:layout_margintop="5dp" android:layout_width="match_parent"&&/view&&textview android:id="@+id/message" android:layout_gravity="center" android:layout_height="wrap_content" android:layout_margintop="10dp" android:layout_width="wrap_content" android:text="这是一个基础对话框测试用例,这是一个基础对话框测试用例,"&&/textview&&/textview&&/linearlayout&&/code&总结:基础对话框只需重写onCreateView方法即可加载对话框。 可根据自己需求调用setStyle(int,int)是否修改对话框样式,上面代码中已经实现。值得注意的是:设置setStyle()必须在onCreateView()方法调用之前才有效,因此一般在onCreate()方法中调用onStyle()方法。取消和设置标题的方法:setStyle(DialogFragment.STYLE_NO_TITLE,0) 和 getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE),设置标题可以getDialog().setTitle(&退出微信&);AlertDialog对话框的使用& & &code class="hljs" java=""&package com.xjp.import android.app.Fimport android.app.FragmentTimport android.os.Bimport android.support.v7.app.ActionBarAimport android.view.Vimport android.widget.Tpublic class MainActivity extends ActionBarActivity implements AlertDialogFragment.DialogFragmentClickImpl {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
showAlertDialog();
private void showAlertDialog() {
FragmentTransaction ft = getFragmentManager().beginTransaction();
Fragment fragment = getFragmentManager().findFragmentByTag(basicDialog);
if (null != fragment) {
ft.remove(fragment);
AlertDialogFragment dialogFragment = new AlertDialogFragment();
dialogFragment.show(ft, basicDialog);
public void doPositiveClick() {
showToast(确定按钮);
public void doNegativeClick() {
showToast(取消按钮);
private void showToast(String msg) {
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
}}//DialogFragmentpackage com.xjp.import android.app.AlertDimport android.app.Dimport android.app.DialogFimport android.content.DialogIimport android.os.Bimport android.util.L/** * Description: * User: xjp * Date:
* Time: 11:18 */public class AlertDialogFragment extends DialogFragment {
public interface DialogFragmentClickImpl {
void doPositiveClick();
void doNegativeClick();
public Dialog onCreateDialog(Bundle savedInstanceState) {
Log.e(TAG, **onCreateDialog**);
return new AlertDialog.Builder(getActivity())
.setIcon(R.drawable.ic_launcher)
.setTitle(退出微信)
.setMessage(是否退出微信,是否退出微信,是否退出微信,是否退出微信,)
.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
DialogFragmentClickImpl impl = (DialogFragmentClickImpl) getActivity();
impl.doPositiveClick();
.setNegativeButton(android.R.string.cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
DialogFragmentClickImpl impl = (DialogFragmentClickImpl) getActivity();
impl.doNegativeClick();
.create();
}}&/code&总结:& & 1.可以在onCreateView中加载对话框,也可以重写onCreateDialog,当然二者不要同时出现。& & 2.对话框和Activity之间的通讯可以通过接口的方式实现,如上代码的DialogFragmentClickImpl接口。& & 3.onCreateView可以加载客户化更高的对话框,onCreateDialog加载系统AlertDialog类型对话框比较合适。& & 4.DialogFragment只是在Fragment中实现了一个Dialog而已。& & 5.DialogFragmnet对话框横屏时对话框不会关闭,因为DailogFragment有Fragment属性,会在屏幕发生变化时重新创建DialogFragment。有图为证:& & & &
声明:该文章系网友上传分享,此内容仅代表网友个人经验或观点,不代表本网站立场和观点;若未进行原创声明,则表明该文章系转载自互联网;若该文章内容涉嫌侵权,请及时向
上一篇:下一篇:
相关经验教程
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益}

我要回帖

更多关于 修改alertdialog样式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信