Android Dialog 的使用总结(AlertDialog)
這個是我總結的自定義彈框,簡單明了,希望給個star
Dialog 對話框
對話框是一個小窗口,提示用戶做出決定或輸入其他信息
?一般我們最長使用的是AlertDialog 卻很少直接使用Dialog 這個是因為?
The?Dialog?class is the base class for dialogs, but you should avoid instantiating?Dialog?directly. Instead, use one of the following subclasses:
官方文檔說了?應該避免實例Dialog直接。而是使用以下子類之一?
AlertDialog, DatePickerDialog,TimePickerDialog,ProgressDialog.?
注意:?不推薦使用ProgressDialog此窗口小部件,因為它會阻止用戶在顯示進度時與應用程序進行交互
下面呢說先常用的AlertDialog?
彈一個常見的app更新彈框
注意由于版本問題彈框字體位置可能存在不一樣的地方,如果看到和別人的彈框位子設置不一樣,可能版本使用不一樣
AlertDialog 寫有常見的創建寫法,與鏈式寫法 看下面2處代碼實現效果一樣
AlertDialog.Builder dialog = new AlertDialog.Builder(InflateActivity.this);dialog.setIcon(R.mipmap.ic_launcher);dialog.setTitle("溫馨提示");dialog.setMessage("發現新版本,是否更新?");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();
與鏈式寫法
AlertDialog.Builder builder = new AlertDialog.Builder(InflateActivity.this).setIcon(R.mipmap.ic_launcher).setTitle("溫馨提示").setMessage("發 現新版本,是否個更新").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 怎樣設置彈框之外的區域不可點擊
dialog.setCancelable(false);
3個 按鈕的彈框
具體代碼如下
AlertDialog.Builder dialog = new AlertDialog.Builder(InflateActivity.this);dialog.setIcon(R.mipmap.ic_launcher);dialog.setTitle("溫馨提示");dialog.setMessage("發現新版本,是否更新?");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
如果說在最右邊使用
setPositiveButton
系統版本的目前沒有中間的,就是使用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的樣式 顯示,類似圓形以及進度條的在剛開始的時候就說建議使用ProgressBar ,還有彈框里面有
輸入框輸入內容的 不建議直接用getView 添加,原因是Dialog 消失的時候還要把getView添加的也要殺掉否則下次進來的時候
就出現常見的diaolog 異常了
下一篇將記錄一下自定義Dialog 來實現更多的效果。。。。。。。。。。。
?
總結
以上是生活随笔為你收集整理的Android Dialog 的使用总结(AlertDialog)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 武庚纪作者是谁啊?
- 下一篇: Android 自定义Dialog 的使