Android開發中我們經常需要用到提示框,以便更好的和用戶進行交互
首先我們來看看效果圖
實現這個其實很簡單,Android的API已經為我們提供了一個提示框類AlertDialog,我們實現的時候直接調用它就好了
1.簡單的消息提示框
- // 簡單消息提示框
- private void showExitDialog01(){
- new AlertDialog.Builder(this)
- .setTitle("標題")
- .setMessage("簡單的消息提示框")
- .setPositiveButton("確定", null)
- .show();
- }
其中this代表的是上下文context的意思,這里的this代表當前Activity的引用,為什么使用this能傳遞一個context呢?因為Activity本身就是Context的一個子類。
setTitle:設置標題文字
setMessage:設置對話框顯示內容
setPositiveButton:設置確認按鈕,第二個參數可以傳入一個監聽事件,可以自定義確認按鈕的事件監聽
show:顯示該對話框
2.帶“是”和“否”的提示框
- // 帶“是”和“否”的提示框
- private void showExitDialog02(){
- new AlertDialog.Builder(this)
- .setTitle("帶確定鍵的提示框")
- .setMessage("確定嗎")
- .setPositiveButton("是", null)
- .setNegativeButton("否", null)
- .show();
- }
setNegativeButton:設置否定按鈕,第二個參數可以傳入自定義的事件監聽,為null則使用系統默認的事件監聽
3.可輸入文本的提示框
- // 可輸入文本的提示框
- private void showExitDialog03(){
- final EditText edt = new EditText(this);
- edt.setMinLines(3);
- new AlertDialog.Builder(this)
- .setTitle("請輸入")
- .setIcon(android.R.drawable.ic_dialog_info)
- .setView(edt)
- .setPositiveButton("確定", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface arg0, int arg1) {
- text_01.setText(edt.getText().toString());
- }
- })
- .setNegativeButton("取消", null)
- .show();
- }
edt.setMinLines(3):設置輸入框最小文本行數
setIcon:設置對話框標題圖標,這里使用的是android自帶的圖片,我們也可以使用自己的圖標
setView:給對話框添加View控件,這個控件可以是EditText,也可以是ImageView,也可以是TextView等等,只要繼承了View的控件都可以傳入
new DialogInterface:這里需要注意,一定要導入正確的包,不是View類下的OnClickListener,而是DialogInterface類下的OnClickListener
4.單選提示框
- // 單選提示框
- private void showExitDialog04(){
- new AlertDialog.Builder(this)
- .setTitle("請選擇")
- .setIcon(android.R.drawable.ic_dialog_info)
- .setSingleChoiceItems(new String[]{"選項1","選項2","選項3","選項4","選項5","選項6"}, -1, new DialogInterface.OnClickListener(){
- public void onClick(DialogInterface arg0, int arg1) {
- switch (arg1) {
- case 0:text_01.setText("選擇了一");break;
- case 1:text_01.setText("選擇了二");break;
- case 2:text_01.setText("選擇了三");break;
- default: break;
- }
- arg0.dismiss();
- }
- })
- .setNegativeButton("取消", null)
- .show();
- }
setSingleChoiceItems:創建帶單選按鈕的列表,它有多種載入數據的方式,這里我們使用的是從字符串數組中裝載數據,幾個方式分別為
1.從資源文件中加載數據public Builder setSingleChoiceItems(int itemsId, int checkedItem, final OnClickListener listener)2.從數據集中加載數據public Builder setSingleChoiceItems(Cursor cursor, int checkedItem, String labelColumn, final OnClickListener listener)3.從字符串數組中加載數據public Builder setSingleChoiceItems(CharSequence[] items, int checkedItem, final OnClickListener listener)4.從ListAdapter對象中加載數據public Builder setSingleChoiceItems(ListAdapter adpater, int checkedItem, final OnClickListener listener)
onClick(DialogInterface arg0, int arg1):其中arg0代表的是當前對話框對象,可以使用arg0.dismiss來關閉當前對話框,arg1代表單選列表中單個項目的位置
5.多選提示框
- // 多選提示框
- private void showExitDialog05(){
- new AlertDialog.Builder(this)
- .setTitle("多選框")
- .setMultiChoiceItems(new String[]{"選項1","選項2","選項3","選項4","選項5","選項6"}, null, null)
- .setPositiveButton("確定",null)
- .setNegativeButton("取消",null)
- .show();
- }
第一個參數為要加載的數據
第二個參數可設置默認選中的按鈕,比如我們想讓“選項2”和“選項3”被選中,則可設置第二個參數為new boolean[]{false,true,true,false,false,false}
第三個參數為監聽事件,需要設置事件監聽時則添加new DialogInterface.OnMultiChoiceClickListener()
6.列表對話框
- // 列表對話框
- private void showExitDialog06(){
- new AlertDialog.Builder(this)
- .setTitle("列表框")
- .setItems(new String[]{"列表1","列表2","列表3","列表4","列表5"}, null)
- .setNegativeButton("確定", null)
- .show();
- }
7.顯示圖片的對話框
- // 顯示圖片的對話框
- private void showExitDialog07(){
- ImageView img = new ImageView(this);
- img.setImageResource(R.drawable.hua);
- new AlertDialog.Builder(this)
- .setTitle("圖片框")
- .setView(img)
- .setPositiveButton("確定", null)
- .show();
- }