Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android-AlertDialog各種對話框的用法

Android-AlertDialog各種對話框的用法

編輯:關於Android編程

目標效果:

\ \ \ \\ \

程序運行,顯示圖一的幾個按鈕,點擊按鈕分別顯示圖二到圖六的對話框,點擊對話框的某一項或者按鈕,也會顯示相應的吐司輸出。

 

1.activity_main.xml頁面存放五個按鈕。

activity_main.xml頁面:

    2.新建dialog.xml頁面,作為最後一個自定義對話框的布局頁面。 dialog.xml頁面:



    

        

            
        
  3.MainActivity.java頁面處理對話框的彈出及點擊事件。 MainActivity.java頁面:
package com.example.alertdialog;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {

	private Button btnSure,btnRadio,btnCheck,btnList,btnMy;
	private String[] sexList={"男","女"};//單選列表
	private String[] likeList={"籃球","足球","打游戲","聽音樂","看電影"};//多選列表
	private String[] itemList={"項目經理","策劃","測試","美工","程序員"};//列表
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		getId();//獲取控件id
		click();//按鈕綁定點擊事件
	}

	/*獲取控件id*/
	private void getId() {
		btnSure = (Button) findViewById(R.id.btnSure);
		btnRadio=(Button) findViewById(R.id.btnRadio);
		btnCheck=(Button) findViewById(R.id.btnCheck);
		btnList=(Button) findViewById(R.id.btnList);
		btnMy=(Button) findViewById(R.id.btnMy);
	}

	/*按鈕綁定點擊事件*/
	private void click() {
		btnSure.setOnClickListener(this);
		btnRadio.setOnClickListener(this);
		btnCheck.setOnClickListener(this);
		btnList.setOnClickListener(this);
		btnMy.setOnClickListener(this);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public void onClick(View view) {

		switch (view.getId()) {
		case R.id.btnSure:
			showDialog1();//確認對話框
			break;
		case R.id.btnRadio:
			showDialog2();//單選對話框
			break;
		case R.id.btnCheck:
			showDialog3();//多選對話框
			break;
		case R.id.btnList:
			showDialog4();
			break;
		case R.id.btnMy:
			showDialog5();
			break;
		}
	}


	/*確認對話框*/
	private void showDialog1() {
		AlertDialog.Builder builder=new AlertDialog.Builder(this);
		builder.setTitle("確認對話框");//設置標題
		builder.setIcon(R.drawable.ic_launcher);//設置圖標
		builder.setMessage("確認對話框提示內容");//設置內容
		/*添加對話框中確定按鈕和點擊事件*/
		builder.setPositiveButton("確定",new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface arg0, int arg1) {
				Toast.makeText(MainActivity.this,"點擊了確定按鈕",Toast.LENGTH_SHORT).show();
			}
		});
		/*添加對話框中取消按鈕和點擊事件*/
		builder.setNegativeButton("取消",new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface arg0, int arg1) {
				Toast.makeText(MainActivity.this,"點擊了取消按鈕",Toast.LENGTH_SHORT).show();
			}
		});
		AlertDialog dialog=builder.create();//獲取dialog
		dialog.show();//顯示對話框
	}

	
	/*單選對話框*/
	private void showDialog2() {
		AlertDialog.Builder builder=new AlertDialog.Builder(this);
		builder.setTitle("性別");//設置標題
		builder.setIcon(R.drawable.ic_launcher);//設置圖標
		/*參數一位單選列表文字,參數二為默認第幾個選中(-1默認不選中),參數三是創建監聽器*/
		builder.setSingleChoiceItems(sexList,-1,new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which) {
				String sex=sexList[which];
				Toast.makeText(MainActivity.this,"這個人性別為"+sex, Toast.LENGTH_SHORT).show();
			}
		});
		/*添加對話框中取消按鈕點擊事件*/
		builder.setNegativeButton("取消",new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which) {
				dialog.dismiss();//關閉對話框
			}
		});
		AlertDialog dialog=builder.create();//獲取dialog
		dialog.show();//顯示對話框
	}
	
	
	/*多選對話框*/
	private void showDialog3() {
		AlertDialog.Builder builder=new AlertDialog.Builder(this);
		builder.setTitle("愛好");//設置標題
		builder.setIcon(R.drawable.ic_launcher);//設置圖標
		/*參數同單選對話框一樣,另外第二個參數默認不選中為null,而不是-1*/
		builder.setMultiChoiceItems(likeList,null,new DialogInterface.OnMultiChoiceClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which, boolean isChecked) {
				if(isChecked){
					Toast.makeText(MainActivity.this,"我喜歡"+likeList[which],Toast.LENGTH_SHORT).show();
				}else{
					Toast.makeText(MainActivity.this,"我不喜歡"+likeList[which],Toast.LENGTH_SHORT).show();
				}
			}
		});
		/*添加對話框中取消按鈕點擊事件*/
		builder.setNegativeButton("取消",new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which) {
				dialog.dismiss();//關閉對話框
			}
		});
		AlertDialog dialog=builder.create();//獲取dialog
		dialog.show();//顯示對話框
	}
	
	
	/*列表對話框*/
	private void showDialog4() {
		AlertDialog.Builder builder=new AlertDialog.Builder(this);
		builder.setTitle("部門列表");//設置標題
		builder.setIcon(R.drawable.ic_launcher);//設置圖標
		builder.setItems(itemList,new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(MainActivity.this,"我點擊了"+itemList[which],Toast.LENGTH_SHORT).show();
			}
		});
		AlertDialog dialog=builder.create();//獲取dialog
		dialog.show();//顯示對話框
	}
	
	
	/*自定義對話框*/
	private void showDialog5() {
		LayoutInflater inflater=LayoutInflater.from(this);
		View view=inflater.inflate(R.layout.dialog,null);//獲取自定義布局
		AlertDialog.Builder builder=new AlertDialog.Builder(this);
		builder.setTitle("自定義對話框");//設置標題
		builder.setIcon(R.drawable.ic_launcher);//設置圖標
		builder.setView(view);//設置自定義樣式布局到對話框
		AlertDialog dialog=builder.create();//獲取dialog
		dialog.show();//顯示對話框
	}

}
  4.運行就出現目標效果了。

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved