android之Dialog的使用

    一個(gè)對(duì)話(huà)框就是一個(gè)小窗體,提示用戶(hù)做出決定或輸入額外的信息。對(duì)話(huà)框不填滿(mǎn)屏幕,通常用于模態(tài)事件,要求用戶(hù)采取某些行動(dòng),程序才能繼續(xù)往下執(zhí)行。下面用在程序里程序具體說(shuō)明Dialog的使用

目前創(chuàng)新互聯(lián)建站已為成百上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、西吉網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

activity_main.xml中的內(nèi)容:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:onClick="showDialog"
        android:text="普通對(duì)話(huà)框" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/button1"
        android:onClick="showDialog"
        android:text="有按鈕的對(duì)話(huà)框" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/button2"
        android:onClick="showDialog"
        android:text="列表對(duì)話(huà)框" />

    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/button3"
         android:onClick="showDialog"
        android:text="單選對(duì)話(huà)框" />

    <Button
        android:id="@+id/button5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/button4"
        android:onClick="showDialog"
        android:text="多選對(duì)話(huà)框" />

    <Button
        android:id="@+id/button6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/button5"
        android:onClick="showDialog"
        android:text="自定義對(duì)話(huà)框" />

    <Button
        android:id="@+id/button7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/button6"
        android:onClick="showDialog"
        android:text="TimePickDialog對(duì)話(huà)框" />

    <Button
        android:id="@+id/button8"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/button7"
        android:onClick="showDialog"
        android:text="DatePickerDialog對(duì)話(huà)框" />

</RelativeLayout>

android之Dialog的使用

新建一個(gè)dialog_button_item.xml布局文件:

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

    <Button
        android:id="@+id/button1"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="Button" />

    <Button
        android:id="@+id/button2"
       android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="Button" />

    <Button
        android:id="@+id/button3"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="Button" />

    <Button
        android:id="@+id/button4"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="Button" />

</LinearLayout>

MainActivity.java中的內(nèi)容:

package com.zzh.day11_dialog;

import java.util.Calendar;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.TimePickerDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TimePicker;
import android.widget.Toast;

public class MainActivity extends Activity
{

	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}

	/**
	 * @param view
	 */
	public void showDialog(View view)
	{
		switch (view.getId())
		{
		case R.id.button1://普通對(duì)話(huà)框
			AlertDialog.Builder builder = new AlertDialog.Builder(this);
			builder.setTitle("普通對(duì)話(huà)框");//設(shè)置對(duì)話(huà)框的標(biāo)題
			builder.setIcon(R.drawable.ic_launcher);//設(shè)置對(duì)話(huà)框的小圖標(biāo)
			builder.setMessage("信息信息信息信息信息信息信息");//設(shè)置對(duì)話(huà)框要顯示的信息
			AlertDialog ad = builder.create();//創(chuàng)建AlertDialog的對(duì)象
			ad.show();//設(shè)置對(duì)話(huà)框顯示
			break;
		case R.id.button2://有按鈕的對(duì)話(huà)框
			/**
			 * setPositiveButton,setNegativeButton,setNeutralButton中參數(shù)的意義
			 * 參數(shù)一:按鈕上要顯示的文字
			 * 參數(shù)二:按鈕的點(diǎn)擊事件
			 * 
			 */
			new AlertDialog.Builder(this).setTitle("按鈕").setIcon(R.drawable.ic_launcher)//
			.setMessage("有按鈕的對(duì)話(huà)框")//
			.setPositiveButton("OK", new OnClickListener()//對(duì)OK按鈕的事件進(jìn)行監(jiān)聽(tīng),處理。后邊的setNegativeButton,setNeutralButton,也是一樣的。
			{
				
				@Override
				public void onClick(DialogInterface dialog, int which)
				{
					Toast.makeText(MainActivity.this, "你點(diǎn)擊了OK按鈕", Toast.LENGTH_SHORT).show();
				}
			})//
			.setNegativeButton("Cencel", null)//
			.setNeutralButton("SO SO", null).show();
			break;
		case R.id.button3://對(duì)話(huà)框的內(nèi)容是一個(gè)列表
			new AlertDialog.Builder(this).setTitle("列表").setIcon(R.drawable.ic_launcher)//
			.setItems(new String[]{"條目一","條目二","條目三","條目四"}, new OnClickListener()
			{
				/*
				 *  DialogInterface dialog:被點(diǎn)擊的對(duì)象
				 * int which:被點(diǎn)擊的位置
				 */
				@Override
				public void onClick(DialogInterface dialog, int which)
				{
					Toast.makeText(MainActivity.this, which+"----", Toast.LENGTH_SHORT).show();
				}
			}).show();
			break;
		case R.id.button4://對(duì)話(huà)框中的內(nèi)容是一個(gè)單選列表
			/**
			 * setSingleChoiceItems中的參數(shù)意義
			 * 參數(shù)一:?jiǎn)芜x框中有哪些條目,是一個(gè)數(shù)組
			 * 參數(shù)二:默認(rèn)被選中的單選框
			 * 參數(shù)三:點(diǎn)擊事件
			 * 重載的方法:
			 * setSingleChoiceItems(int itemsId, int checkedItem, DialogInterface.OnClickListener listener)
			 * 參數(shù)一:是把數(shù)組定義在xml文件中,在Java文件中使用R.array....引用。
			 * */
			new AlertDialog.Builder(this).setTitle("單選").setIcon(R.drawable.ic_launcher)//
			.setSingleChoiceItems(new String[]{"red","blue","green"}, -1, new OnClickListener()
			{
				
				@Override
				public void onClick(DialogInterface dialog, int which)
				{
					Toast.makeText(MainActivity.this, "選擇了第  "+(which+1)+" 個(gè)顏色", Toast.LENGTH_SHORT).show();
				}
			}).show();
			break;
		case R.id.button5://多選對(duì)話(huà)框
			/**
			 * setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, DialogInterface.OnMultiChoiceClickListener listener)
			 * 參數(shù)一:多選框中的條目;
			 * 參數(shù)二:是否被選中,如果是null,則都沒(méi)有選中
			 * 參數(shù)三:與單選框的事件不同,DialogInterface.OnMultiChoiceClickListener
			 * */
			new AlertDialog.Builder(this).setTitle("多選").setIcon(R.drawable.ic_launcher)//
			.setMultiChoiceItems(new String[]{"red","blue","green"}, null, new OnMultiChoiceClickListener()
			{
				
				/* onClick(DialogInterface dialog, int which, boolean isChecked)
				 * 參數(shù)一:被點(diǎn)擊的對(duì)象;
				 * 參數(shù)二:被點(diǎn)擊的位置,位置是從0開(kāi)始的
				 * 參數(shù)三:被點(diǎn)擊的對(duì)象是否選中,如果選中則是true,如果取消選中,則是false
				 */
				@Override
				public void onClick(DialogInterface dialog, int which, boolean isChecked)
				{
					Toast.makeText(MainActivity.this, "選擇了第  "+(which+1)+" 個(gè)顏色", Toast.LENGTH_SHORT).show();
				}
			}).show();
			break;
		case R.id.button6://自定義對(duì)話(huà)框
			View view_button = getLayoutInflater().inflate(R.layout.dialog_button_item, null);//轉(zhuǎn)換模板,將定義好的按鈕小xml文件轉(zhuǎn)換成View對(duì)象
			final AlertDialog dialog = new AlertDialog.Builder(this).setTitle("自定義").setIcon(R.drawable.ic_launcher).setView(view_button).create();//
			dialog.show();
			Button btn = (Button) view_button.findViewById(R.id.button1);//給按鈕設(shè)置點(diǎn)擊事件
			
			btn.setOnClickListener(new View.OnClickListener() {
				
				@Override
				public void onClick(View v) {
					Toast.makeText(MainActivity.this, "lalalla", Toast.LENGTH_SHORT).show();
					dialog.dismiss();//事件執(zhí)行完成以后,對(duì)話(huà)框消失
				}
			});
			break;
		case R.id.button7://時(shí)間選擇對(duì)話(huà)框,時(shí)分
			/**
			 * TimePickerDialog(Context context, TimePickerDialog.OnTimeSetListener callBack, int hourOfDay, int minute, boolean is24HourView)
			 * 參數(shù)一:上下文
			 * 參數(shù)二:TimePickerDialog的點(diǎn)擊事件,
			 * 參數(shù)三:小時(shí)
			 * 參數(shù)四:分鐘
			 * 參數(shù)五:是否使用24小時(shí)制,是true
			 * */
			TimePickerDialog tpd = new TimePickerDialog(this,new TimePickerDialog.OnTimeSetListener()//此監(jiān)聽(tīng)事件的接口是在TimePickerDialog.OnTimeSetListener()
			{
				@Override
				public void onTimeSet(TimePicker view, int hourOfDay, int minute)
				{
					Toast.makeText(MainActivity.this, " "+hourOfDay+":"+minute, Toast.LENGTH_SHORT).show();
				}
			},1,1,true );
			tpd.show();
			break;
		case R.id.button8://日期選擇對(duì)話(huà)框,年月日
			/**
			 * DatePickerDialog(Context context, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)
			 * 參數(shù)一:上下文
			 * 參數(shù)二:DatePickerDialog的點(diǎn)擊事件,
			 * 參數(shù)三:設(shè)置年
			 * 參數(shù)四:設(shè)置月份
			 * 參數(shù)五:設(shè)置日
			 */
			DatePickerDialog dpd = new DatePickerDialog(this, new OnDateSetListener()
			{
				
				@Override
				public void onDateSet(DatePicker view, int year, int monthOfYear,
						int dayOfMonth)
				{
					Toast.makeText(MainActivity.this, " "+year+" : "+(monthOfYear+1)+" : "+dayOfMonth, Toast.LENGTH_SHORT).show();
				}
			}, Calendar.getInstance().get(Calendar.YEAR), Calendar.getInstance().get(Calendar.MONTH), Calendar.getInstance().get(Calendar.DAY_OF_MONTH));
			dpd.show();
			break;
		}
	}
}

顯示的效果示例:

android之Dialog的使用android之Dialog的使用

    

有興趣的,可以使用程序慢慢研究。

本文名稱(chēng):android之Dialog的使用
文章出自:http://bm7419.com/article2/gosioc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站策劃、做網(wǎng)站、微信公眾號(hào)、定制網(wǎng)站企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司