Android设置Toast长时间显示,及AlertDialog的使用
toast弹窗的用法

toast弹窗的用法
Toast弹窗是一种用户友好的弹出信息提示方式。
它消除了用户交互设计中需要打开新页面来显示简短信息带来的流畅度问题。
Toast弹窗可以在不影响用户正在使用当前页面时,在屏幕上提供简洁但丰富的信息提醒。
Toast弹窗的用法主要有以下几点:
1、当界面上一些操作成功或失败时,可以使用Toast弹窗来提醒用户,例如:添加联系人成功后,弹出“添加成功”的toast来提醒用户;
2、Toast弹窗可以通知用户需要特别关注的消息,例如:收到一条新消息,弹出“新消息”的toast来提醒用户;
3、Toast弹窗可以提醒用户在界面上部署的操作,例如:点击某个按钮,弹出“这里是某个按钮”的toast来提醒用户;
4、Toast弹窗也可以用来提示用户某些重要的操作,例如:用户要求清除APP缓存,弹出“正在清除缓存,请稍候”的toast来提醒用户;
5、Toast弹窗可以用来提供小量的提示信息,例如:用户需要输入某个固定格式的文本,弹出“请输入固定格式的文本”的toast来提示用户。
Toast弹窗是一种非常有用的用户友好的消息提醒工具,使用起来简单,没有太多的限制,是开发者在设计界面的时候的理想选择。
安卓弹出对话框——Alertdialog

安卓弹出对话框——Alertdialog在Android开发当中,在界⾯上弹出⼀个Dialog对话框使我们经常需要做的,本篇随笔将详细的讲解Dialog对话框这个概念,包括定义不同样式的对话框。
⼀、Dialog我们⾸先来看看android官⽅⽂档对Dialog的介绍A dialog is a small window that prompts the user to make a decision or enter additional information. A dialog does not fill the screen and is normally used formodal events that require users to take an action before they can proceed.dialog就是⼀个在屏幕上弹出⼀个可以让⽤户做出⼀个选择,或者输⼊额外的信息的对话框,⼀个对话框并不会沾满我们整个的屏幕,并且通常⽤于模型事件当中需要⽤户做出⼀个决定后才会继续执⾏。
Dialog类是dialog对话框的基类,但是我们应该避免直接使⽤这个类来实例化⼀个dialog对话框,我们应当使⽤其⼦类来得到⼀个对话框:ng.Object↳ android.app.DialogKnown Direct SubclassesAlertDialog, CharacterPickerDialog, MediaRouteChooserDialog, MediaRouteControllerDialog, PresentationKnown Indirect SubclassesDatePickerDialog, ProgressDialog, TimePickerDialog我们看到,Dialog有很多的⼦类实现,所以我们要定义⼀个对话框,使⽤其⼦类来实例化⼀个即可,⽽不要直接使⽤Dialog这个⽗类来构造。
android对话框的知识点

Android对话框的知识点Android对话框是一种用于与用户进行交互的界面元素,可以在应用程序中显示消息、警告、确认等提示信息。
以下是关于Android对话框的一些知识点:1. 显示类型:Android对话框有多种显示类型,如Toast、Dialog、AlertDialog等。
Toast是一种短暂的提示信息,通常在屏幕底部显示,而Dialog和AlertDialog则是一种更加完整的对话框,可以包含多个视图和操作按钮。
2. 显示位置:Android对话框可以在屏幕的任意位置显示,但是通常会根据对话框类型和内容进行调整。
例如,Toast通常会在屏幕的中心位置显示,而Dialog和AlertDialog则可以在屏幕的任何位置显示,并且可以通过设置位置属性来进行调整。
3. 布局设计:Android对话框的布局设计可以根据应用程序的需求进行调整。
例如,Dialog可以包含多个视图,如标题、正文、按钮等,而AlertDialog则可以包含多个操作按钮。
在设计对话框布局时,需要考虑界面的美观性和易用性。
4. 操作按钮:Android对话框可以包含多个操作按钮,如确定、取消、保存等。
在添加操作按钮时,需要考虑按钮的数量和样式,并为每个按钮设置相应的操作方法。
5. 生命周期:Android对话框的生命周期与应用程序的生命周期密切相关。
当应用程序启动时,可以通过调用DialogFragment或AlertDialog构造函数来创建对话框,并在应用程序退出时销毁对话框。
在使用对话框时,需要注意对话框的生命周期,避免出现内存泄漏和其他问题。
6. 自定义样式:Android对话框可以通过自定义样式来实现更加个性化的界面效果。
可以通过设置背景颜色、文本颜色、图标等属性来进行自定义。
7. 国际化:Android对话框可以通过国际化来支持不同语言的用户界面。
可以使用资源文件来定义不同语言的文本和按钮操作,并在应用程序中根据用户的语言环境自动切换。
android的toast的用法

android的toast的用法Toast是Android中常用的一个控件,用于在屏幕上显示简单的信息提示,常用于在应用程序中提供反馈信息。
本文将详细介绍Toast 的用法、属性、示例代码以及注意事项,帮助开发者更好地掌握Toast 的使用。
一、Toast的概述Toast是Android系统提供的一个简单的消息提示框,它可以显示一条短小的文本信息,并在用户点击关闭前停留在屏幕上。
Toast的主要作用是向用户提供简短的反馈信息,通常用于指示应用程序的状态或执行结果。
二、Toast的属性1. toastView:Toast的视图对象,用于显示文本信息。
2. duration:Toast的显示时间,单位为毫秒,默认值为Toast.LENGTH_SHORT,也可以设置为Toast.LENGTH_LONG。
3. text:要显示的文本信息,可以是字符串资源或普通文本。
三、Toast的用法1. 在代码中创建Toast:可以使用Toast类的静态方法makeText 创建Toast对象,并设置要显示的文本信息和显示时间。
2. 显示Toast:通过Toast对象的show方法将Toast显示在屏幕上。
3. 取消Toast:在用户点击关闭按钮或屏幕前,可以调用cancel 方法取消Toast的显示。
四、示例代码下面是一个简单的示例代码,演示如何使用Toast显示文本信息:```java// 创建Toast对象并设置文本信息Toast toast = Toast.makeText(context, "提示信息", Toast.LENGTH_SHORT);// 将Toast显示在屏幕上toast.show();```在上面的示例中,通过context创建了一个Toast对象,并设置了要显示的文本信息和显示时间。
然后调用show方法将Toast显示在屏幕上。
五、注意事项1. Toast只能显示一条简短的文本信息,不适合显示复杂的提示信息。
android8种对话框(Dialog)使用方法汇总

android8种对话框(Dialog )使⽤⽅法汇总Android 提供了丰富的 Dialog 函数,本⽂介绍最常⽤的8种对话框的使⽤⽅法,包括普通(包含提⽰消息和按钮)、列表、单选、多选、等待、进度条、编辑、⾃定义等多种形式,将在第2部分介绍。
有时,我们希望在对话框创建或关闭时完成⼀些特定的功能,这需要 复写 Dialog 的 create() 、 show() 、 dismiss() 等⽅法,将在第3部分介绍。
2个按钮推荐阅读1.写在前⾯2.代码⽰例2.1 普通Dialog (图1与图2)public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);Button buttonNormal = (Button) findViewById(R.id.button_normal); buttonNormal.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {showNormalDialog();}});}private void showNormalDialog(){/* @setIcon 设置对话框图标* @setTitle 设置对话框标题* @setMessage 设置对话框消息提⽰* setXXX⽅法返回Dialog对象,因此可以链式设置属性*/final AlertDialog.Builder normalDialog =new AlertDialog.Builder(MainActivity.this);normalDialog.setIcon(R.drawable.icon_dialog);normalDialog.setTitle("我是⼀个普通Dialog")normalDialog.setMessage("你要点击哪⼀个按钮呢?");normalDialog.setPositiveButton("确定",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {//...To-do}});normalDialog.setNegativeButton("关闭",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {//...To-do}});// 显⽰normalDialog.show();}}3个按钮/* @setNeutralButton 设置中间的按钮* 若只需⼀个按钮,仅设置 setPositiveButton 即可*/private void showMultiBtnDialog(){AlertDialog.Builder normalDialog =new AlertDialog.Builder(MainActivity.this);normalDialog.setIcon(R.drawable.icon_dialog);normalDialog.setTitle("我是⼀个普通Dialog").setMessage("你要点击哪⼀个按钮呢?"); normalDialog.setPositiveButton("按钮1",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// ...To-do}});normalDialog.setNeutralButton("按钮2",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// ...To-do}});normalDialog.setNegativeButton("按钮3", new DialogInterface.OnClickListener() { @Overridepublic void onClick(DialogInterface dialog, int which) {// ...To-do}});// 创建实例并显⽰normalDialog.show();}2.2 列表Dialog(图3)private void showListDialog() {final String[] items = { "我是1","我是2","我是3","我是4" };AlertDialog.Builder listDialog =new AlertDialog.Builder(MainActivity.this);listDialog.setTitle("我是⼀个列表Dialog");listDialog.setItems(items, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// which 下标从0开始// ...To-doToast.makeText(MainActivity.this,"你点击了" + items[which],Toast.LENGTH_SHORT).show();}});listDialog.show();}2.3 单选Dialog(图4)int yourChoice;private void showSingleChoiceDialog(){final String[] items = { "我是1","我是2","我是3","我是4" }; yourChoice = -1;AlertDialog.Builder singleChoiceDialog =new AlertDialog.Builder(MainActivity.this);singleChoiceDialog.setTitle("我是⼀个单选Dialog");// 第⼆个参数是默认选项,此处设置为0singleChoiceDialog.setSingleChoiceItems(items, 0,new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) { yourChoice = which;}});singleChoiceDialog.setPositiveButton("确定",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) { if (yourChoice != -1) {Toast.makeText(MainActivity.this,"你选择了" + items[yourChoice],Toast.LENGTH_SHORT).show();}}});singleChoiceDialog.show();}2.4 多选Dialog(图5)ArrayList<Integer> yourChoices = new ArrayList<>();private void showMultiChoiceDialog() {final String[] items = { "我是1","我是2","我是3","我是4" };// 设置默认选中的选项,全为false默认均未选中final boolean initChoiceSets[]={false,false,false,false};yourChoices.clear();AlertDialog.Builder multiChoiceDialog =new AlertDialog.Builder(MainActivity.this);multiChoiceDialog.setTitle("我是⼀个多选Dialog");multiChoiceDialog.setMultiChoiceItems(items, initChoiceSets, new DialogInterface.OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which,boolean isChecked) {if (isChecked) {yourChoices.add(which);} else {yourChoices.remove(which);}}});multiChoiceDialog.setPositiveButton("确定",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {int size = yourChoices.size();String str = "";for (int i = 0; i < size; i++) {str += items[yourChoices.get(i)] + " ";}Toast.makeText(MainActivity.this,"你选中了" + str,Toast.LENGTH_SHORT).show();}});multiChoiceDialog.show();}2.5 等待Dialog(图6)private void showWaitingDialog() {/* 等待Dialog具有屏蔽其他控件的交互能⼒* @setCancelable 为使屏幕不可点击,设置为不可取消(false) * 下载等事件完成后,主动调⽤函数关闭该Dialog*/ProgressDialog waitingDialog=new ProgressDialog(MainActivity.this);waitingDialog.setTitle("我是⼀个等待Dialog");waitingDialog.setMessage("等待中...");waitingDialog.setIndeterminate(true);waitingDialog.setCancelable(false);waitingDialog.show();}2.6 进度条Dialog(图7)private void showProgressDialog() {/* @setProgress 设置初始进度* @setProgressStyle 设置样式(⽔平进度条)* @setMax 设置进度最⼤值*/final int MAX_PROGRESS = 100;final ProgressDialog progressDialog =new ProgressDialog(MainActivity.this);progressDialog.setProgress(0);progressDialog.setTitle("我是⼀个进度条Dialog");progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); progressDialog.setMax(MAX_PROGRESS);progressDialog.show();/* 模拟进度增加的过程* 新开⼀个线程,每个100ms,进度增加1*/new Thread(new Runnable() {@Overridepublic void run() {int progress= 0;while (progress < MAX_PROGRESS){try {Thread.sleep(100);progress++;progressDialog.setProgress(progress);} catch (InterruptedException e){e.printStackTrace();}}// 进度达到最⼤值后,窗⼝消失progressDialog.cancel();}}).start();}2.7 编辑Dialog(图8)private void showInputDialog() {/*@setView 装⼊⼀个EditView*/final EditText editText = new EditText(MainActivity.this);AlertDialog.Builder inputDialog =new AlertDialog.Builder(MainActivity.this);inputDialog.setTitle("我是⼀个输⼊Dialog").setView(editText);inputDialog.setPositiveButton("确定",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this,editText.getText().toString(),Toast.LENGTH_SHORT).show();}}).show();}2.8 ⾃定义Dialog(图9)<!-- res/layout/dialog_customize.xml--><!-- ⾃定义View --><LinearLayout xmlns:android="/apk/res/android" android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><EditTextandroid:id="@+id/edit_text"android:layout_width="match_parent"android:layout_height="wrap_content"/></LinearLayout>private void showCustomizeDialog() {/* @setView 装⼊⾃定义View ==> yout.dialog_customize* 由于dialog_customize.xml只放置了⼀个EditView,因此和图8⼀样* dialog_customize.xml可⾃定义更复杂的View*/AlertDialog.Builder customizeDialog =new AlertDialog.Builder(MainActivity.this);final View dialogView = LayoutInflater.from(MainActivity.this).inflate(yout.dialog_customize,null);customizeDialog.setTitle("我是⼀个⾃定义Dialog");customizeDialog.setView(dialogView);customizeDialog.setPositiveButton("确定",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// 获取EditView中的输⼊内容EditText edit_text =(EditText) dialogView.findViewById(R.id.edit_text);Toast.makeText(MainActivity.this,edit_text.getText().toString(),Toast.LENGTH_SHORT).show();}});customizeDialog.show();}3.复写回调函数/* 复写Builder的create和show函数,可以在Dialog显⽰前实现必要设置* 例如初始化列表、默认选项等* @create 第⼀次创建时调⽤* @show 每次显⽰时调⽤*/private void showListDialog() {final String[] items = { "我是1","我是2","我是3","我是4" };AlertDialog.Builder listDialog =new AlertDialog.Builder(MainActivity.this){@Overridepublic AlertDialog create() {items[0] = "我是No.1";return super.create();}@Overridepublic AlertDialog show() {items[1] = "我是No.2";return super.show();}};listDialog.setTitle("我是⼀个列表Dialog");listDialog.setItems(items, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// ...To-do}});/* @setOnDismissListener Dialog销毁时调⽤* @setOnCancelListener Dialog关闭时调⽤*/listDialog.setOnDismissListener(new DialogInterface.OnDismissListener() { public void onDismiss(DialogInterface dialog) {Toast.makeText(getApplicationContext(),"Dialog被销毁了",Toast.LENGTH_SHORT).show();}});listDialog.show();}。
android中Toast的5种用法转内附android权限大全

android中Toast的5种用法转内附android权限大全Android中Toast的5种用法Toast是Android开发中常用的一种提示方式,它可以在屏幕上显示短暂的提示信息,帮助我们向用户传递必要的信息。
本文将介绍Android中Toast的5种用法,以及附上Android权限大全供参考。
1. 基本用法首先,我们来看一下Toast的基本用法。
在Android开发中,可以通过以下代码创建一个Toast对象,并显示出来:```javaToast.makeText(context, text, duration).show();```其中,参数context表示上下文对象,一般传入当前的Activity;text表示要显示的文本内容;duration表示显示时长,有两个可选值:Toast.LENGTH_SHORT表示短时显示,大约2秒钟;Toast.LENGTH_LONG表示长时显示,大约3.5秒钟。
例如,要显示一个简单的提示"Hello, Toast!",可以使用以下代码:```javaToast.makeText(MainActivity.this, "Hello, Toast!",Toast.LENGTH_SHORT).show();```2. 自定义布局除了显示简单的文本提示外,Toast还可以显示自定义的布局。
通过设置自定义布局,可以实现更加丰富的提示效果。
首先,我们需要创建一个布局文件,例如toast_custom.xml,定义了要显示的布局样式。
然后,在代码中使用LayoutInflater加载该布局,并通过setView方法设置给Toast对象,最后调用show方法显示出来。
以下是示例代码:```javaLayoutInflater inflater = getLayoutInflater();View layout = inflater.inflate(yout.toast_custom, (ViewGroup) findViewById(R.id.toast_root));Toast toast = new Toast(getApplicationContext());toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);toast.setDuration(Toast.LENGTH_SHORT);toast.setView(layout);toast.show();```3. 修改位置默认情况下,Toast显示在屏幕的中间位置。
android8种对话框(Dialog)使用方法汇总

android8种对话框(Dialog)使用方法汇总Android中提供了多种对话框(Dialog)用于与用户进行交互。
下面将介绍Android中的8种常用对话框及其使用方法。
1. AlertDialog对话框:AlertDialog对话框是Android中最常用的对话框之一、它可以显示一个带有标题、消息和按钮的对话框。
使用AlertDialog.Builder类创建AlertDialog对象并设置相关属性,如标题、消息、按钮等。
然后调用show(方法显示对话框。
2. ProgressDialog对话框:ProgressDialog对话框用于显示一个进度条,通常用于表示长时间运行的任务的进度。
使用ProgressDialog类创建ProgressDialog对象,并使用setProgressStyle(方法设置进度条的样式,然后使用show(方法显示对话框。
可以通过调用setProgress(方法来更新进度条的进度。
3. DatePickerDialog日期选择对话框:DatePickerDialog对话框用于选择日期。
使用DatePickerDialog类创建DatePickerDialog对象,并使用setDate(方法设置初始日期。
然后使用show(方法显示对话框。
可以通过实现OnDateSetListener接口来监听用户选择的日期。
4. TimePickerDialog时间选择对话框:TimePickerDialog对话框用于选择时间。
使用TimePickerDialog类创建TimePickerDialog对象,并使用setTime(方法设置初始时间。
然后使用show(方法显示对话框。
可以通过实现OnTimeSetListener接口来监听用户选择的时间。
5. AlertDialog单选对话框:AlertDialog单选对话框用于让用户从多个选项中选择一个选项。
使用AlertDialog.Builder类创建AlertDialog对象,并使用setSingleChoiceItems(方法设置选项列表。
Android AlertDialog 详解

Android AlertDialog 详解创建对话框一个对话框一般是一个出现在当前Activity之上的一个小窗口. 处于下面的Activity失去焦点, 对话框接受所有的用户交互. 对话框一般用于提示信息和与当前应用程序直接相关的小功能.Android API 支持下列类型的对话框对象:警告对话框AlertDialog: 一个可以有0到3个按钮, 一个单选框或复选框的列表的对话框. 警告对话框可以创建大多数的交互界面, 是推荐的类型.进度对话框ProgressDialog: 显示一个进度环或者一个进度条. 由于它是AlertD ialog的扩展, 所以它也支持按钮.日期选择对话框DatePickerDialog: 让用户选择一个日期.时间选择对话框TimePickerDialog: 让用户选择一个时间.如果你希望自定义你的对话框, 可以扩展Dialog类.Show ing a D ialog 显示对话框一个对话框总是被创建和显示为一个Activity的一部分. 你应该在Activity的onCreateD ialog(int)中创建对话框. 当你使用这个回调函数时,Android系统自动管理每个对话框的状态并将它们和Activity连接, 将Activity变为对话框的"所有者". 这样,每个对话框从Activity继承一些属性. 例如,当一个对话框打开时, MENU键会显示Activity的菜单, 音量键会调整Activity当前使用的音频流的音量.注意: 如果你希望在onCreateDialog()方法之外创建对话框, 它将不会依附在Activity上. 你可以使用setOwnerActivity(Activity)来将它依附在Activity上.当你希望显示一个对话框时, 调用showDialog(int)并将对话框的id传给它.当一个对话框第一次被请求时,Android调用onCreateD ialog(int). 这里是你初始化对话框的地方. 这个回调函数传入的id和showDialog(int)相同. 创建对话框之后,将返回被创建的对象.在对话框被显示之前,Android还会调用onPrepareDialog(int, D ialog). 如果你希望每次显示对话框时有动态更改的内容, 那么就改写这个函数. 该函数在每次一个对话框打开时都调用. 如果你不定义该函数,则对话框每次打开都是一样的. 该函数也会传入对话框的id以及你在onCreateDialog()中创建的D ialog对象.最好的定义onCreateD ialog(int) 和onPr epareD ialog(int, Dialog) 的方法就是使用一个switch语句来检查传入的id. 每个case创建相应的对话框. 例如, 一个游戏使用两个对话框: 一个来指示游戏暂停,另一个指示游戏结束. 首先, 为它们定义ID:static final int DIALOG_PAUSED_ID = 0;static final int DIALOG_GAMEOVER_ID = 1;然后, 在onCreateDialog(int)中加入一个switch语句:protected Dialog onCreateD ialog(int id) {Dialog dialog;switch(id) {case DIALOG_PAUSED_ID:// do the work to define the pause Dialogbreak;case DIALOG_GAMEOVER_ID:// do the work to define the game over Dialogbreak;default:dialog = null;}retur n dialog;}注意: 在这个例子中, case语句为空因为定义D ialog的程序在后面会有介绍.在需要显示对话框是, 调用showDialog(int), 传入对话框的id:showDialog(DIALOG_PAUSED_ID);Dismissing a D ialog 解除对话框当你准备关闭对话框时, 你可以使用dismiss()函数. 如果需要的话, 你也可以从Activity调用dismissDialog(int), 二者效果是一样的.如果你使用onCreateD ialog(int)来管理你的对话框的状态, 那么每次你的对话框被解除时, 该对话框对象的状态会被Activity保存. 如果你决定你不再需要这个对象或者需要清除对话框的状态, 那么你应该调用removeDialog(int). 这将把所有该对象的内部引用移除, 如果该对话框在显示的话将被解除.Using dismiss listeners 使用解除监听器如果你希望在对话框解除时运行某些程序, 那么你应该给对话框附加一个解除监听器.首先定义DialogInterface.OnD ismissListener接口. 这个接口只有一个方法, onD ismiss(DialogInterface), 该方法将在对话框解除时被调用.然后将你的OnD ismissListener实现传给setOnDismissListener().然而,注意对话框也可以被"取消". 这是一个特殊的情形, 它意味着对话框被用户显式的取消掉. 这将在用户按下"back"键时, 或者对话框显式的调用cancel()(按下对话框的cancel按钮)时发生. 当一个对话框被取消时, OnD ismissListener将仍然被通知, 但如果你希望在对话框被显示取消(而不是正常解除)时被通知, 则你应该使用setOnCancelListener()注册一个DialogInterface.OnCancelListener.Creating an AlertDialog 创建警告对话框An AlertDialog is an extension of the Dialog class. It is capable of constructing most dialog user interfaces and is the suggested dialog type. You should use it for dialogs that use any of the follow ing features:一个警告对话框是对话框的一个扩展. 它能够创建大多数对话框用户界面并且是推荐的对话框类新星. 对于需要下列任何特性的对话框,你都应该使用它:一个标题一条文字消息1个-3个按钮一个可选择的列表(单选框或者复选框)要创建一个AlertDialog, 使用AlertDialog.Builder子类. 使用AlertD ialog.Builder(Context)来得到一个Builder, 然后使用该类的公有方法来定义AlertDialog的属性. 设定好以后, 使用create()方法来获得AlertD ialog对象.下面的主题展示了如何为AlertDialog定义不同的属性, 使用AlertD ialog.Builder类. 如果你使用这些示例代码, 你可以在onCreateDialog()中返回最后的D ialog对象来获得图片中对话框的效果.Adding buttons 增加按钮要创建一个如图所示的窗口,使用set...Button()方法:AlertDialog.Builder builder = new AlertD ialog.Builder(this);builder.setMessage("Are you sure you want to exit?").setCancelable(false).setPositiveButton("Yes", new DialogInterface.OnC lickListener() {public void onC lick(DialogInterface dialog, int id) {MyActivity.this.finish();}}).setNegativeButton("No", new DialogInterface.OnC lickListener() {public void onC lick(DialogInterface dialog, int id) {dialog.cancel();}});AlertDialog alert = builder.create();首先,使用setMessage(CharSequence)为对话框增加一条消息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
首先简单介绍一下Toast(吐司)。
这个控件的用词相当准确,它所表现出来的特征正是吐司似的弹出效果,而且非常的简单便捷。
Android自带的整个Toast功能能够帮助我们编写程序的时候实现简单的提醒功能,使得程序的应用变得更加友好。
可是在使用Toast的时候,无论是使用makeText(),还是使用toast.setDuration(),在其中进行Toast 显示时间的设置时,取值Toast.LENGTH_LONG,或者是Toast.LENGTH_SHORT,Toast都会只是一闪而过,显示的时间很短。
如果我们需要提醒大量的信息的时候,显然这样是用Toast是很不友好的。
那么,如何能够使得Toast可以长时间显示呢?
在Java中有一个类,叫做Timer,这个类可以帮我们。
示例如下:
private Toast toast = null;
private class IntroButtonListener implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
toast = Toast.makeText(StartPage.this, toastText,Toast.LENGTH_LONG);
initToast();
execToast();
}
}
private void execToast(){
Timer timer = new Timer();
timer.schedule(new TimerTask(){
@Override
public void run() {
// TODO Auto-generated method stub
initToast();
}
}, 30);
}
private void initToast(){
toast.show();
}
我在这里将Toast的示例化延迟到了触发事件是再响应,然后调用的是makeText()方法,给它设置Duration的值为Toast.LENGTH_LONG,然后将toast.show()用一个方法initToast()包起来,这么做的目的是让它显示在Timer中也会接着显示我的Toast。
这么做的逻辑是,首先先显示Toast,然后让Timer帮助再次显示Toast,这样就会出现了Toast长时间显示的效果,如果想让时间变得更长,可以修改Timer里面timer.schedule()的值,我这里设置的是30。
你可以直接Copy这段代码,这是我测试通过的。
如果你真的有必要利用提醒和用户产生互动,建议不要使用Toast,可以改用Dialog,可能效果会更好些。
Dialog dialog = new AlertDialog.Builder(StartPage.this)
.setTitle("提示")
.setMessage(toastText)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int whichButton){
dialog.cancel();
}
}).create();
dialog.show();
这种对话框是只显示确定的对话框,也就是提示对话框,我们可以根据这个对话框写法的构造,给它添加成可以有选择功能的对话框:
Dialog dialog = new AlertDialog.Builder(ContactsSettingPage.this).setTitle(
"提示").setMessage("确定删除此项?").setPositiveButton("确定",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
//需要做的事情.....
}
}).setNegativeButton("取消",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.cancel();
}
}).create();
dialog.show();
显然红色字体是我添加的内容,也就是多出来了一个“取消”按钮,这样就可以进行对话框的选择了。
如果你想在确定之后做些什么,那就在蓝色的地方添加需要做的事情就好了。
这样扩展对话框正好是设计模式中的装饰者模式,这样的设计具有非常便利的好处,面向对象的优越性跃然而出!
根据这样的推断,如果你还想添加其他神马按钮,不妨可以模仿试一试~。