Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android入門第九篇之AlertDialog

Android入門第九篇之AlertDialog

編輯:Android開發實例

     時隔一年,又要准備做Android的開發了,最近復習和整理一下Android的知識。這次要說的是AlertDialog,這種對話框會經常遇到。AlertDialog跟WIN32開發中的Dialog不一樣,AlertDialog是非阻塞的,而阻塞的對話框用的是PopupWindow。

       先貼出程序運行的截圖:

main.xml的源碼: 

 

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:orientation="vertical" 
  4.     android:layout_width="fill_parent" 
  5.     android:layout_height="fill_parent" 
  6.     > 
  7.  
  8. <Button android:id="@+id/Button01" android:layout_height="wrap_content" android:text="非Layout型對話框" android:layout_width="fill_parent"></Button> 
  9. <Button android:id="@+id/Button02" android:layout_height="wrap_content" android:text="Layout型對話框" android:layout_width="fill_parent"></Button><View android:id="@+id/View01" android:layout_width="wrap_content" android:layout_height="wrap_content"></View> 
  10.  
  11. </LinearLayout> 

 

 

下圖是非Layout型對話框,直接使用AlertDialog

下圖是使用了Layout的對話框,可以自定義控件,實現更復雜的對話框

dialoglayout.xml的源碼:

 

  1. <?xml version="1.0" encoding="utf-8"?> 
  2.  
  3. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  4.     android:layout_width="fill_parent" android:layout_height="wrap_content" 
  5.     android:orientation="vertical"> 
  6.     <EditText android:layout_height="wrap_content" 
  7.         android:layout_width="fill_parent" android:layout_marginLeft="20dip" 
  8.         android:layout_marginRight="20dip" android:textAppearance="?android:attr/textAppearanceMedium" android:id="@+id/edtInput"/> 
  9. </LinearLayout> 

 

 

程序源碼:

 

 
  1. package com.testAlertDialog;     
  2.     
  3. import android.app.Activity;     
  4. import android.app.AlertDialog;     
  5. import android.content.Context;     
  6. import android.content.DialogInterface;     
  7. import android.os.Bundle;     
  8. import android.view.Gravity;     
  9. import android.view.LayoutInflater;     
  10. import android.view.View;     
  11. import android.view.View.OnClickListener;     
  12. import android.widget.Button;     
  13. import android.widget.EditText;     
  14. import android.widget.PopupWindow;     
  15.     
  16.     
  17. public class testAlertDialog extends Activity {     
  18.     Button btnShowDialog;     
  19.     Button btnShowDialog_Layout;     
  20.     /** Called when the activity is first created. */    
  21.     @Override    
  22.     public void onCreate(Bundle savedInstanceState) {     
  23.         super.onCreate(savedInstanceState);     
  24.         setContentView(R.layout.main);     
  25.         //定義按鈕     
  26.         btnShowDialog=(Button)this.findViewById(R.id.Button01);     
  27.         btnShowDialog.setOnClickListener(new ClickEvent());     
  28.         btnShowDialog_Layout=(Button)this.findViewById(R.id.Button02);     
  29.         btnShowDialog_Layout.setOnClickListener(new ClickEvent());     
  30.     }     
  31.          
  32.          
  33.     //統一處理按鍵事件     
  34.     class ClickEvent implements OnClickListener{     
  35.     
  36.         @Override    
  37.         public void onClick(View v) {     
  38.             // TODO Auto-generated method stub     
  39.             if(v==btnShowDialog)     
  40.                 showDialog(testAlertDialog.this);     
  41.                      
  42.             else if(v==btnShowDialog_Layout)     
  43.                 showDialog_Layout(testAlertDialog.this);     
  44.                  
  45.         }     
  46.     
  47.     }     
  48.     
  49.     //顯示基本的AlertDialog     
  50.     private void showDialog(Context context) {     
  51.         AlertDialog.Builder builder = new AlertDialog.Builder(context);     
  52.         builder.setIcon(R.drawable.icon);     
  53.         builder.setTitle("Title");     
  54.         builder.setMessage("Message");     
  55.         builder.setPositiveButton("Button1",     
  56.                 new DialogInterface.OnClickListener() {     
  57.                     public void onClick(DialogInterface dialog, int whichButton) {     
  58.                         setTitle("點擊了對話框上的Button1");     
  59.                     }     
  60.                 });     
  61.         builder.setNeutralButton("Button2",     
  62.                 new DialogInterface.OnClickListener() {     
  63.                     public void onClick(DialogInterface dialog, int whichButton) {     
  64.                         setTitle("點擊了對話框上的Button2");     
  65.                     }     
  66.                 });     
  67.         builder.setNegativeButton("Button3",     
  68.                 new DialogInterface.OnClickListener() {     
  69.                     public void onClick(DialogInterface dialog, int whichButton) {     
  70.                         setTitle("點擊了對話框上的Button3");     
  71.                     }     
  72.                 });     
  73.         builder.show();     
  74.     }     
  75.     
  76.     
  77.     //顯示基於Layout的AlertDialog     
  78.     private void showDialog_Layout(Context context) {     
  79.         LayoutInflater inflater = LayoutInflater.from(this);     
  80.         final View textEntryView = inflater.inflate(     
  81.                 R.layout.dialoglayout, null);     
  82.         final EditText edtInput=(EditText)textEntryView.findViewById(R.id.edtInput);     
  83.         final AlertDialog.Builder builder = new AlertDialog.Builder(context);     
  84.         builder.setCancelable(false);     
  85.         builder.setIcon(R.drawable.icon);     
  86.         builder.setTitle("Title");     
  87.         builder.setView(textEntryView);     
  88.         builder.setPositiveButton("確認",     
  89.                 new DialogInterface.OnClickListener() {     
  90.                     public void onClick(DialogInterface dialog, int whichButton) {     
  91.                         setTitle(edtInput.getText());     
  92.                     }     
  93.                 });     
  94.         builder.setNegativeButton("取消",     
  95.                 new DialogInterface.OnClickListener() {     
  96.                     public void onClick(DialogInterface dialog, int whichButton) {     
  97.                         setTitle("");     
  98.                     }     
  99.                 });     
  100.         builder.show();     
  101.     }     
  102. }    
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved