2012-07-23

Android對話方塊(AlertDialog)應用(一) - 基本型及自定義按鈕

今天介紹的是也蠻常用的對話方塊AlertDialog

此功能就如同window上的MessageBox一樣

只是比它還強大一點,因為AlertDialog除了基本的訊息和設定按鈕外


它也能變成自定義對話方塊,自由改變AlertDialog內容


自定義對話方塊下篇再來說明,此篇先介紹基本型的就好

廢話不要太多,直接貼出程式碼和說明:

main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="訊息方塊" />

</LinearLayout>

DemoAlertDialogActivity.java
package jim.demo.alertdialog;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class DemoAlertDialogActivity extends Activity {
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        //跳出對話方塊的按鈕
        Button btn = (Button)findViewById(R.id.button1);
        
        btn.setOnClickListener(new Button.OnClickListener(){
	  @Override
	  public void onClick(View v) {
				   
          /*基本型對話方塊
	    setIcon:設置Icon圖片,我是使用內建圖片
	    setTitle:設置標題
	    setmessage:設置內容*/
	  Builder  dialog = new AlertDialog.Builder(DemoAlertDialogActivity.this)
	  .setIcon(android.R.drawable.btn_star_big_on)
	  .setTitle("標題")  
	  .setMessage("我只是個內容");
	  dialog.show();  
	  }
        	
        });
    }
}


畫面



自定義按鈕
package jim.demo.alertdialog;


import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class DemoAlertDialogActivity extends Activity {
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        //跳出對話方塊的按鈕
        Button btn = (Button)findViewById(R.id.button1);
        
        btn.setOnClickListener(new Button.OnClickListener(){
			@Override
			public void onClick(View v) {
				   
               /*基本型對話方塊
				 setIcon:設置Icon圖片,我是使用內建圖片
				 setTitle:設置標題
				 setmessage:設置內容*/
				Builder  dialog = new AlertDialog.Builder(DemoAlertDialogActivity.this)
				.setIcon(android.R.drawable.btn_star_big_on)
				.setTitle("標題")  
				.setMessage("我只是個內容");
				
				//建立三個按鈕的監聽式
				 DialogInterface.OnClickListener Click = new DialogInterface.OnClickListener()
				 {
					@Override
					public void onClick(DialogInterface dialog, int which) {
						//which可以用來分辨是按下哪一個按鈕
						 switch (which) {
						 case Dialog.BUTTON_POSITIVE:  
							 //快顯訊息
							 Toast.makeText(DemoAlertDialogActivity.this, "左邊按鈕",  
			                         Toast.LENGTH_SHORT).show();
							 break; 
						 case Dialog.BUTTON_NEUTRAL:  
							//快顯訊息
							 Toast.makeText(DemoAlertDialogActivity.this, "中間按鈕",  
			                         Toast.LENGTH_SHORT).show();
							 break; 
						 case Dialog.BUTTON_NEGATIVE:  
							//快顯訊息
							 Toast.makeText(DemoAlertDialogActivity.this, "右邊按鈕",  
			                         Toast.LENGTH_SHORT).show();
							 break; 
						 }
					}
					 
				 };
				 
				 dialog.setPositiveButton("左邊按鈕",Click );
				 dialog.setNeutralButton("中間按鈕",Click );
				 dialog.setNegativeButton("右邊按鈕",Click );
				dialog.show();  
			}
        	
        });
    }
}


畫面


後記:

AlertDialog在Android手機應用程式中還蠻常用到的

因為如果只是一個簡單的選取而不需要另外開Activity的話

基本上都會用AlertDialog直接代替,也就是說AlertDialog除了


可顯示訊息外,還可以當做一個簡單的Activity來用


但這就要用到自定義的方式才處理,下面一篇就來為您介紹


自定義的方式顯示對話方塊它的實例運用。


2 則留言:

  1. 你好 請問自定義的dialog可以放switch鈕在裡面嗎??
    on/off的那個物件
    謝謝!!

    回覆刪除

您的寶貴建議是我前進的動力!