public class AlertDialog
extends Dialog
implements DialogInterface
java.lang.Object | ||
↳ | android.app.Dialog | |
↳ | android.app.AlertDialog |
Known Direct Subclasses |
对话框的一个子类,可以显示一个,两个或三个按钮。 如果您只想在此对话框中显示一个字符串,请使用setMessage()方法。 如果您想显示更复杂的视图,请查看名为“custom”的FrameLayout并将视图添加到它:
FrameLayout fl = (FrameLayout) findViewById(android.R.id.custom); fl.addView(myView, new LayoutParams(MATCH_PARENT, WRAP_CONTENT));
该AlertDialog类需要自动设置护理WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM
根据你是否在对话框返回从真正的任何意见View.onCheckIsTextEditor()
。 一般而言,您希望将此设置设置为不含文本编辑器的对话框,以便将其放置在当前输入法UI的顶部。 在调用onCreate(Bundle)
之后,可以通过强制标志为所需模式来修改此行为。
有关创建对话框的更多信息,请阅读 Dialogs开发人员指南。
Nested classes |
|
---|---|
class |
AlertDialog.Builder
|
Constants |
|
---|---|
int |
THEME_DEVICE_DEFAULT_DARK 此常数在API级别23中已弃用。请使用 |
int |
THEME_DEVICE_DEFAULT_LIGHT 此常数在API级别23中已弃用。请使用 |
int |
THEME_HOLO_DARK 此常数在API级别23中已弃用。请使用 |
int |
THEME_HOLO_LIGHT 此常数在API级别23中已弃用。请使用 |
int |
THEME_TRADITIONAL 此常数在API级别23中已弃用。请使用 |
Inherited constants |
---|
From interface android.content.DialogInterface
|
Protected constructors |
|
---|---|
AlertDialog(Context context) 创建使用默认警报对话框主题的警报对话框。 |
|
AlertDialog(Context context, boolean cancelable, DialogInterface.OnCancelListener cancelListener) 创建使用默认警报对话框主题和自定义取消侦听器的警报对话框。 |
|
AlertDialog(Context context, int themeResId) 创建使用明确主题资源的警报对话框。 |
Protected methods |
|
---|---|
void |
onCreate(Bundle savedInstanceState) 与 |
Inherited methods |
|
---|---|
From class android.app.Dialog
|
|
From class java.lang.Object
|
|
From interface android.content.DialogInterface
|
|
From interface android.view.Window.Callback
|
|
From interface android.view.KeyEvent.Callback
|
|
From interface android.view.View.OnCreateContextMenuListener
|
int THEME_DEVICE_DEFAULT_DARK
此常数在API级别23中已弃用。
使用Theme_DeviceDefault_Dialog_Alert
。
AlertDialog(Context, int)
特殊主题常量:在黑暗的背景下使用设备的默认警报主题。
常量值:4(0x00000004)
int THEME_DEVICE_DEFAULT_LIGHT
此常数在API级别23中已弃用。
使用Theme_DeviceDefault_Light_Dialog_Alert
。
AlertDialog(Context, int)
特殊主题常量:在浅色背景下使用设备的默认警报主题。
常量值:5(0x00000005)
int THEME_HOLO_DARK
此常数在API级别23中已弃用。
使用Theme_Material_Dialog_Alert
。
AlertDialog(Context, int)
特殊主题常量:在黑暗背景下使用全息警报主题。
常量值:2(0x00000002)
int THEME_HOLO_LIGHT
此常数在API级别23中已弃用。
使用Theme_Material_Light_Dialog_Alert
。
AlertDialog(Context, int)
特殊主题常量:以浅色背景使用全息警报主题。
常量值:3(0x00000003)
int THEME_TRADITIONAL
此常数在API级别23中已弃用。
使用Theme_Material_Dialog_Alert
。
AlertDialog(Context, int)
特殊主题常量:使用传统(预先Holo)警报对话框主题。
常数值:1(0x00000001)
AlertDialog (Context context)
创建使用默认警报对话框主题的警报对话框。
默认的警告对话框的主题是通过定义 alertDialogTheme
在父 context
的主题。
Parameters | |
---|---|
context |
Context : the parent context |
也可以看看:
AlertDialog (Context context, boolean cancelable, DialogInterface.OnCancelListener cancelListener)
创建使用默认警报对话框主题和自定义取消侦听器的警报对话框。
这在功能上与以下内容相同:
AlertDialog dialog = new AlertDialog(context); alertDialog.setCancelable(cancelable); alertDialog.setOnCancelListener(cancelListener);
默认的警告对话框的主题是通过定义 alertDialogTheme
在父 context
的主题。
Parameters | |
---|---|
context |
Context : the parent context |
cancelable |
boolean
|
cancelListener |
DialogInterface.OnCancelListener
|
也可以看看:
AlertDialog (Context context, int themeResId)
创建使用明确主题资源的警报对话框。
指定的主题资源( themeResId
)应用于父级context
的主题context
。 它可能被指定为包含完全填充主题的样式资源,例如Theme_Material_Dialog
,以取代父级context
的主题(包括主要和重音颜色)中的所有属性。
要保留诸如主要和重点颜色之themeResId
属性, themeResId
可改为指定为覆盖主题,例如ThemeOverlay_Material_Dialog
。 这将仅覆盖将警报窗口设置为对话框所需的窗口属性。
可替代地, themeResId
可被指定为 0
使用父 context
解析值的为 alertDialogTheme
。
Parameters | |
---|---|
context |
Context : the parent context |
themeResId |
int : the resource ID of the theme against which to inflate this dialog, or 0 to use the parent context 's default alert dialog theme |
也可以看看:
Button getButton (int whichButton)
获取对话框中使用的按钮之一。 如果指定的按钮不存在或对话框尚未完全创建(例如,通过show()
或create()
),则返回null。
Parameters | |
---|---|
whichButton |
int : The identifier of the button that should be returned. For example, this can be BUTTON_POSITIVE . |
Returns | |
---|---|
Button |
The button from the dialog, or null if a button does not exist. |
ListView getListView ()
获取对话框中使用的列表视图。
Returns | |
---|---|
ListView |
The ListView from the dialog. |
boolean onKeyDown (int keyCode, KeyEvent event)
一键被按下。
如果重点视图不想要这个事件,则调用此方法。
缺省实现使用KEYCODE_BACK以稍后在 onKeyUp(int, KeyEvent)
处理它。
Parameters | |
---|---|
keyCode |
int : The value in event.getKeyCode(). |
event |
KeyEvent : Description of the key event. |
Returns | |
---|---|
boolean |
If you handled the event, return true. If you want to allow the event to be handled by the next receiver, return false. |
boolean onKeyUp (int keyCode, KeyEvent event)
一个关键被释放。
缺省实现处理KEYCODE_BACK以关闭对话框。
Parameters | |
---|---|
keyCode |
int : The value in event.getKeyCode(). |
event |
KeyEvent : Description of the key event. |
Returns | |
---|---|
boolean |
If you handled the event, return true. If you want to allow the event to be handled by the next receiver, return false. |
void setButton (CharSequence text, DialogInterface.OnClickListener listener)
此方法在API级别3中已被弃用。
使用setButton(int, CharSequence, android.content.DialogInterface.OnClickListener)
和BUTTON_POSITIVE
当按下对话框的按钮1时,设置要调用的侦听器。
Parameters | |
---|---|
text |
CharSequence : The text to display in button 1. |
listener |
DialogInterface.OnClickListener : The DialogInterface.OnClickListener to use. |
void setButton (int whichButton, CharSequence text, DialogInterface.OnClickListener listener)
当按下对话框的正面按钮时,设置一个侦听器被调用。
Parameters | |
---|---|
whichButton |
int : Which button to set the listener on, can be one of BUTTON_POSITIVE , BUTTON_NEGATIVE , or BUTTON_NEUTRAL |
text |
CharSequence : The text to display in positive button. |
listener |
DialogInterface.OnClickListener : The DialogInterface.OnClickListener to use. |
void setButton (CharSequence text, Message msg)
此方法在API级别3中已被弃用。
使用setButton(int, CharSequence, Message)
和BUTTON_POSITIVE
。
Parameters | |
---|---|
text |
CharSequence
|
msg |
Message
|
void setButton (int whichButton, CharSequence text, Message msg)
设置按下按钮时发送的消息。
Parameters | |
---|---|
whichButton |
int : Which button to set the message for, can be one of BUTTON_POSITIVE , BUTTON_NEGATIVE , or BUTTON_NEUTRAL |
text |
CharSequence : The text to display in positive button. |
msg |
Message : The Message to be sent when clicked. |
void setButton2 (CharSequence text, Message msg)
此方法在API级别3中已被弃用。
与BUTTON_NEGATIVE
setButton(int, CharSequence, Message)
使用BUTTON_NEGATIVE
。
Parameters | |
---|---|
text |
CharSequence
|
msg |
Message
|
void setButton2 (CharSequence text, DialogInterface.OnClickListener listener)
此方法在API级别3中已被弃用。
使用setButton(int, CharSequence, android.content.DialogInterface.OnClickListener)
和BUTTON_NEGATIVE
当按下对话框的按钮2时,设置要调用的侦听器。
Parameters | |
---|---|
text |
CharSequence : The text to display in button 2. |
listener |
DialogInterface.OnClickListener : The DialogInterface.OnClickListener to use. |
void setButton3 (CharSequence text, Message msg)
此方法在API级别3中已被弃用。
使用setButton(int, CharSequence, Message)
和BUTTON_NEUTRAL
。
Parameters | |
---|---|
text |
CharSequence
|
msg |
Message
|
void setButton3 (CharSequence text, DialogInterface.OnClickListener listener)
此方法在API级别3中已被弃用。
使用setButton(int, CharSequence, android.content.DialogInterface.OnClickListener)
和BUTTON_POSITIVE
当按下对话框的按钮3时,设置要调用的侦听器。
Parameters | |
---|---|
text |
CharSequence : The text to display in button 3. |
listener |
DialogInterface.OnClickListener : The DialogInterface.OnClickListener to use. |
void setCustomTitle (View customTitleView)
Parameters | |
---|---|
customTitleView |
View
|
也可以看看:
void setIcon (int resId)
如果不需要图标,请将resId设置为0。
Parameters | |
---|---|
resId |
int : the resourceId of the drawable to use as the icon or 0 if you don't want an icon. |
void setIconAttribute (int attrId)
设置由主题属性提供的图标。 例如android.R.attr.alertDialogIcon
Parameters | |
---|---|
attrId |
int : ID of a theme attribute that points to a drawable resource. |
void setInverseBackgroundForced (boolean forceInverseBackground)
Parameters | |
---|---|
forceInverseBackground |
boolean
|
void setMessage (CharSequence message)
Parameters | |
---|---|
message |
CharSequence
|
void setTitle (CharSequence title)
为此对话框的窗口设置标题文本。
Parameters | |
---|---|
title |
CharSequence : The new text to display in the title. |
void setView (View view, int viewSpacingLeft, int viewSpacingTop, int viewSpacingRight, int viewSpacingBottom)
将视图设置为在该对话框中显示,指定在该视图周围显示的间距。
Parameters | |
---|---|
view |
View : The view to show in the content area of the dialog |
viewSpacingLeft |
int : Extra space to appear to the left of view |
viewSpacingTop |
int : Extra space to appear above view |
viewSpacingRight |
int : Extra space to appear to the right of view |
viewSpacingBottom |
int : Extra space to appear below view |
void onCreate (Bundle savedInstanceState)
与 onCreate(Bundle)
类似,您应该使用此方法初始化对话框,包括调用 setContentView(View)
。
Parameters | |
---|---|
savedInstanceState |
Bundle : If this dialog is being reinitialized after a the hosting activity was previously shut down, holds the result from the most recent call to onSaveInstanceState() , or null if this is the first time. |