詳解-Android各種提示框


Android開發中我們經常需要用到提示框,以便更好的和用戶進行交互

首先我們來看看效果圖

 

實現這個其實很簡單,Android的API已經為我們提供了一個提示框類AlertDialog,我們實現的時候直接調用它就好了

 

1.簡單的消息提示框

 

[java]  view plain  copy
 
  1. // 簡單消息提示框  
  2. private void showExitDialog01(){  
  3.     new AlertDialog.Builder(this)  
  4.         .setTitle("標題")  
  5.         .setMessage("簡單的消息提示框")  
  6.         .setPositiveButton("確定", null)  
  7.         .show();  
  8. }  

其中this代表的是上下文context的意思,這里的this代表當前Activity的引用,為什么使用this能傳遞一個context呢?因為Activity本身就是Context的一個子類。

setTitle:設置標題文字

setMessage:設置對話框顯示內容

setPositiveButton:設置確認按鈕,第二個參數可以傳入一個監聽事件,可以自定義確認按鈕的事件監聽

show:顯示該對話框

 

2.帶“是”和“否”的提示框

 

[java]  view plain  copy
 
  1. // 帶“是”和“否”的提示框  
  2. private void showExitDialog02(){  
  3.     new AlertDialog.Builder(this)  
  4.         .setTitle("帶確定鍵的提示框")  
  5.         .setMessage("確定嗎")  
  6.         .setPositiveButton("是", null)  
  7.         .setNegativeButton("否", null)  
  8.         .show();  
  9. }  

setNegativeButton:設置否定按鈕,第二個參數可以傳入自定義的事件監聽,為null則使用系統默認的事件監聽

 

 

3.可輸入文本的提示框

 

[java]  view plain  copy
 
  1. // 可輸入文本的提示框  
  2. private void showExitDialog03(){  
  3.     final EditText edt = new EditText(this);  
  4.     edt.setMinLines(3);  
  5.     new AlertDialog.Builder(this)  
  6.         .setTitle("請輸入")  
  7.         .setIcon(android.R.drawable.ic_dialog_info)  
  8.         .setView(edt)  
  9.         .setPositiveButton("確定", new DialogInterface.OnClickListener() {  
  10.             public void onClick(DialogInterface arg0, int arg1) {  
  11.                 text_01.setText(edt.getText().toString());  
  12.             }  
  13.         })  
  14.         .setNegativeButton("取消", null)  
  15.         .show();  
  16. }  
  17.       

edt.setMinLines(3):設置輸入框最小文本行數

setIcon:設置對話框標題圖標,這里使用的是android自帶的圖片,我們也可以使用自己的圖標

setView:給對話框添加View控件,這個控件可以是EditText,也可以是ImageView,也可以是TextView等等,只要繼承了View的控件都可以傳入

new DialogInterface:這里需要注意,一定要導入正確的包,不是View類下的OnClickListener,而是DialogInterface類下的OnClickListener

 

4.單選提示框

 

[java]  view plain  copy
 
  1. // 單選提示框  
  2. private void showExitDialog04(){  
  3.     new AlertDialog.Builder(this)  
  4.         .setTitle("請選擇")  
  5.         .setIcon(android.R.drawable.ic_dialog_info)  
  6.         .setSingleChoiceItems(new String[]{"選項1","選項2","選項3","選項4","選項5","選項6"}, -1, new DialogInterface.OnClickListener(){  
  7.             public void onClick(DialogInterface arg0, int arg1) {  
  8.                 switch (arg1) {  
  9.                 case 0:text_01.setText("選擇了一");break;  
  10.                 case 1:text_01.setText("選擇了二");break;  
  11.                 case 2:text_01.setText("選擇了三");break;  
  12.                 default: break;  
  13.                 }  
  14.                 arg0.dismiss();  
  15.             }  
  16.         })  
  17.         .setNegativeButton("取消", null)  
  18.         .show();  
  19. }  

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)
第一個參數為要加載的數據,第二個參數為默認選中的按鈕,如果為0則代表第一個項目被選中,為-1則代表沒有項目被選中。第三個參數可為單選列表的項目設置監聽事件
onClick(DialogInterface arg0, int arg1):其中arg0代表的是當前對話框對象,可以使用arg0.dismiss來關閉當前對話框,arg1代表單選列表中單個項目的位置

5.多選提示框

[java]  view plain  copy
 
  1. // 多選提示框  
  2. private void showExitDialog05(){  
  3.     new AlertDialog.Builder(this)  
  4.         .setTitle("多選框")  
  5.         .setMultiChoiceItems(new String[]{"選項1","選項2","選項3","選項4","選項5","選項6"}, null, null)  
  6.         .setPositiveButton("確定",null)  
  7.         .setNegativeButton("取消",null)  
  8.         .show();  
  9. }  
setMultiChoiceItems:創建帶多選按妞的列表
第一個參數為要加載的數據
第二個參數可設置默認選中的按鈕,比如我們想讓“選項2”和“選項3”被選中,則可設置第二個參數為new boolean[]{false,true,true,false,false,false}
第三個參數為監聽事件,需要設置事件監聽時則添加new DialogInterface.OnMultiChoiceClickListener()

6.列表對話框

[java]  view plain  copy
 
  1. // 列表對話框  
  2. private void showExitDialog06(){  
  3.     new AlertDialog.Builder(this)  
  4.         .setTitle("列表框")  
  5.         .setItems(new String[]{"列表1","列表2","列表3","列表4","列表5"}, null)  
  6.         .setNegativeButton("確定", null)  
  7.         .show();  
  8. }  
setItems:設置添加列表框,第二個參數可傳入事件監聽

7.顯示圖片的對話框

[java]  view plain  copy
 
  1. // 顯示圖片的對話框  
  2. private void showExitDialog07(){  
  3.     ImageView img = new ImageView(this);  
  4.     img.setImageResource(R.drawable.hua);  
  5.     new AlertDialog.Builder(this)  
  6.         .setTitle("圖片框")  
  7.         .setView(img)  
  8.         .setPositiveButton("確定", null)  
  9.         .show();  
  10. }  
這個對話框的實現其實和第3個可輸入文本的提示框實現方式一樣,都是通過setView添加View控件達到顯示效果


Demo源碼:傳送門


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM