Android Dialog 的使用总结(AlertDialog)
這個(gè)是我總結(jié)的自定義彈框,簡(jiǎn)單明了,希望給個(gè)star
Dialog 對(duì)話框
對(duì)話框是一個(gè)小窗口,提示用戶做出決定或輸入其他信息
?一般我們最長(zhǎng)使用的是AlertDialog 卻很少直接使用Dialog 這個(gè)是因?yàn)?
The?Dialog?class is the base class for dialogs, but you should avoid instantiating?Dialog?directly. Instead, use one of the following subclasses:
官方文檔說(shuō)了?應(yīng)該避免實(shí)例Dialog直接。而是使用以下子類(lèi)之一?
AlertDialog, DatePickerDialog,TimePickerDialog,ProgressDialog.?
注意:?不推薦使用ProgressDialog此窗口小部件,因?yàn)樗鼤?huì)阻止用戶在顯示進(jìn)度時(shí)與應(yīng)用程序進(jìn)行交互
下面呢說(shuō)先常用的AlertDialog?
彈一個(gè)常見(jiàn)的app更新彈框
注意由于版本問(wèn)題彈框字體位置可能存在不一樣的地方,如果看到和別人的彈框位子設(shè)置不一樣,可能版本使用不一樣
AlertDialog 寫(xiě)有常見(jiàn)的創(chuàng)建寫(xiě)法,與鏈?zhǔn)綄?xiě)法 看下面2處代碼實(shí)現(xiàn)效果一樣
AlertDialog.Builder dialog = new AlertDialog.Builder(InflateActivity.this);dialog.setIcon(R.mipmap.ic_launcher);dialog.setTitle("溫馨提示");dialog.setMessage("發(fā)現(xiàn)新版本,是否更新?");dialog.setPositiveButton("更新", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}});dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}});dialog.show();
與鏈?zhǔn)綄?xiě)法
AlertDialog.Builder builder = new AlertDialog.Builder(InflateActivity.this).setIcon(R.mipmap.ic_launcher).setTitle("溫馨提示").setMessage("發(fā) 現(xiàn)新版本,是否個(gè)更新").setPositiveButton("更新", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}});builder.show();
Dialog 怎樣設(shè)置彈框之外的區(qū)域不可點(diǎn)擊
dialog.setCancelable(false);
3個(gè) 按鈕的彈框
具體代碼如下
AlertDialog.Builder dialog = new AlertDialog.Builder(InflateActivity.this);dialog.setIcon(R.mipmap.ic_launcher);dialog.setTitle("溫馨提示");dialog.setMessage("發(fā)現(xiàn)新版本,是否更新?");dialog.setPositiveButton("更新", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();}});dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();}});dialog.setNeutralButton("忽略", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();}});dialog.setCancelable(false);dialog.show();
沖上面可以看出如果要文字在左邊
使用
setNeutralButton
如果說(shuō)在最右邊使用
setPositiveButton
系統(tǒng)版本的目前沒(méi)有中間的,就是使用setNegativeButton 也是在最右邊
列表的Dialog?
代碼如下
String[] items = {"不辣", "微辣", "中辣", "重辣"};
AlertDialog.Builder dialog = new AlertDialog.Builder(InflateActivity.this);dialog.setIcon(R.mipmap.ic_launcher);dialog.setTitle("辣度選擇");dialog.setItems(items, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(InflateActivity.this, items[which], Toast.LENGTH_SHORT).show();}});dialog.setCancelable(false);dialog.show();
單選的彈框
代碼
String[] items = {"不辣", "微辣", "中辣", "重辣"};
AlertDialog.Builder dialog = new AlertDialog.Builder(InflateActivity.this);dialog.setIcon(R.mipmap.ic_launcher);dialog.setTitle("辣度選擇");dialog.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(InflateActivity.this, items[which], Toast.LENGTH_SHORT).show();}});dialog.setCancelable(false);dialog.show();
多選彈框
String[] items = {"不辣", "微辣", "中辣", "重辣"};
AlertDialog.Builder dialog = new AlertDialog.Builder(InflateActivity.this);dialog.setIcon(R.mipmap.ic_launcher);dialog.setTitle("辣度選擇");dialog.setMultiChoiceItems(items, new boolean[]{false,false,false,false}, new DialogInterface.OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which, boolean isChecked) {}});dialog.setCancelable(false);dialog.show();
以上就是AlertDialog的樣式 顯示,類(lèi)似圓形以及進(jìn)度條的在剛開(kāi)始的時(shí)候就說(shuō)建議使用ProgressBar ,還有彈框里面有
輸入框輸入內(nèi)容的 不建議直接用getView 添加,原因是Dialog 消失的時(shí)候還要把getView添加的也要?dú)⒌舴駝t下次進(jìn)來(lái)的時(shí)候
就出現(xiàn)常見(jiàn)的diaolog 異常了
下一篇將記錄一下自定義Dialog 來(lái)實(shí)現(xiàn)更多的效果。。。。。。。。。。。
?
總結(jié)
以上是生活随笔為你收集整理的Android Dialog 的使用总结(AlertDialog)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。