android學習---Dialog

Dialoghtml

  Dialog,對話框,一個對話框就是一個小窗口,並不會填滿整個屏幕,一般是以模態顯示,要求用戶必須採起行動才能繼續進行剩下的操做。java

  Android提供了豐富的對話框支持,它提供了以下4中經常使用的對話框:android

  • AlertDialog:警告對話框,使用最普遍功能最豐富的一個對話框。
  • ProgressDialog:進度條對話框,只是對進度條進行了簡單的封裝。
  • DatePickerDialog:日期對話框。
  • TimePickerDialog:時間對話框。

  全部的對話框,都是直接或間接繼承自Dialog類,而AlterDialog直接繼承自Dialog,其餘的幾個類均繼承自AlterDialog。數組

 

AlertDialogapp

  AlertDialog繼承自Dialog類,對於Android內置的AlterDialog,它能夠包含一個標題、一個內容消息或者一個選擇列表、最多三個按鈕。而建立AlterDialog推薦使用它的一個內部類AlterDialog.Builder建立。使用Builder對象,能夠設置AlterDialog的各類屬性,最後經過Builder.create()就能夠獲得AlterDialog對象,若是隻是還須要顯示這個AlterDialog,通常能夠直接使用Builder.show()方法,它會返回一個AlterDialog對象,而且顯示它。ide

  若是僅僅是須要提示一段信息給用戶,那麼就能夠直接使用AlterDialog的一些屬性設置提示信息,涉及到的方法有:函數

  • AlterDialog create():根據設置的屬性,建立一個AlterDialog。
  • AlterDialog show():根據設置的屬性,建立一個AlterDialog,而且顯示在屏幕上。
  • AlterDialog.Builder setTitle():設置標題。
  • AlterDialog.Builder setIcon():設置標題的圖標。
  • AlterDialog.Builder setMessage():設置標題的內容。
  • AlterDialog.Builder setCancelable():設置是否模態,通常設置爲false,表示模態,要求用戶必須採起行動才能繼續進行剩下的操做。

  Tips:AlterDialog.Builder的不少設置屬性的方法,返回的均是這個AlterDialog.Builder對象,因此可使用鏈式方式編寫代碼,這樣更方便。佈局

  當一個對話框調用了show()方法後,展現到屏幕上,若是須要消除它,可使用DialogInterface接口聲明的兩個方法,cancel()和dismiss()使對話框取或者消除,這兩個方法的做用是同樣的,不過推薦使用dismiss()。Dialog和AlterDialog都實現了DialogInterface接口,因此只要是對話框,都可以使用這兩個方法來消除對話框。ui

  

AlterDialog的按鈕this

  AlterDialog內置了三個按鈕,能夠直接使用setXxxButton()方法進行設置,對於通常的對話框,使用三個按鈕基本上也夠用了,下面是這三個方法的簽名:

  • AlterDialog.Builder setPositiveButton(CharSquence text , DialogInterFace.OnClickListener):一個積極的按鈕,通常用於「OK」或者「繼續」等操做。
  • AlterDialog.Builder setNegativeButton(CharSquence text , DialogInterFace.OnClickListener):一個負面的按鈕,通常用於「取消」操做。
  • AlterDialog.Builder setNeutralButton(CharSquence text , DialogInterFace.OnClickListener):一個比較中性的按鈕,通常用於「忽略」、「之後提醒我」等操做。

  上面介紹的DialogInterface接口,還提供了一系列的事件響應,這三個按鈕均須要傳遞一個DialogInterFace.OnClickListener接口對象,實現其點擊事件的觸發,在這個接口中須要實現一個onClick(DialogInterface dialog,int which),dialog爲當前觸發事件的對話框對象接口,能夠直接強制轉換爲AlterDialog進行操做;which爲點擊按鈕的標識符,是一個整形的數據,對於這三個按鈕而言,每一個按鈕使用不一樣的int類型數據進行標識:Positive(-1)、Negative(-2)、Neutral(-3)。

  而除了專門爲按鈕點擊實現的DialogInterFace.OnClickListener事件外,DialogInterface還提供了一些其餘的事件,供Dialog對象響應,這些事件只是對Dialog聲明週期各個狀態的響應,一看就明白了,就再也不詳細講解了,下面是這幾個事件的說明:

  • interface DialogInterface.OnCancelListener:當對話框調用cancel()方法的時候觸發。
  • interface DialogInterface.OnDismissListener:當對話框調用dismiss()方法的時候觸發。
  • interface DialogInterface.OnShowListener:當對話框調用show()方法的時候觸發。
  • interface DialogInterface.OnMultiChoiceListener:當對話框使用多選列表,而且選中的時候觸發。

  示例:

button.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                AlertDialog.Builder builder = new AlertDialog.Builder(
                        MainActivity.this);
                builder.setTitle("提示");
                builder.setMessage("你肯定要刪除嗎?");
                builder.setPositiveButton("肯定", new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this, "肯定被點擊",
                                Toast.LENGTH_SHORT).show();
                    }
                });
                builder.setNegativeButton("取消", new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this, "取消被點擊",
                                Toast.LENGTH_SHORT).show();
                    }
                });
                builder.setNeutralButton("忽略", new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this, "忽略被點擊",
                                Toast.LENGTH_SHORT).show();
                    }
                });
                builder.setIcon(R.drawable.ic_launcher);
                AlertDialog alertDialog = builder.create();
                alertDialog.show();
            }
        });

效果:

AlterDialog的列表形式

  AlterDialog除了展現一些提示信息,還能夠展現一種列表的形式,須要使用到Builder.setItems(CharSequence[] items,DialogInterface.OnClickListener listener)方法進行設置,它須要傳遞一個CharSequenece類型的數組,以綁定列表的數據,它一樣須要傳遞一個DialogInterface.OnClickListener接口,以響應列表項的點擊,而這個接口中onClick方法的which參數,爲當前點擊觸發項的items中的下標。

  示例:

button2.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                AlertDialog.Builder builder = new AlertDialog.Builder(
                        MainActivity.this);
                builder.setTitle("請選擇如下城市");
                // builder.setMessage("請選擇如下城市");//不能設置message的內容
                builder.setItems(items, new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub
                        String select_item = items[which].toString();
                        Toast.makeText(MainActivity.this,
                                "選擇了-->>" + select_item, Toast.LENGTH_SHORT)
                                .show();
                    }
                });
                AlertDialog dialog = builder.create();
                dialog.show();

            }
        });

效果:

AlterDialog的單選列表

  AlterDialog還可使用一種單選的列表樣式,使用Builder.setSingleChoiceItems(CharSequenece[] items,int checkedItem,DialogInterface.OnClickListener listener),這個方法具備多項重載,主要是爲了應對不一樣的數據源,items爲列表項數組,checkedItem爲初始選項,listener爲點擊響應事件。有時候並不必定須要選中以後就關閉對話框,能夠設置兩個按鈕,用於肯定選擇。

  示例:

button3.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                AlertDialog.Builder builder = new AlertDialog.Builder(
                        MainActivity.this);
                builder.setTitle("請選擇如下城市");
                builder.setSingleChoiceItems(items, -1, new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub
                        String select_item = items[which].toString();
                        Toast.makeText(MainActivity.this,
                                "選擇了-->>" + select_item, Toast.LENGTH_SHORT)
                                .show();
                    }
                });
                builder.setPositiveButton("肯定", new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub
                        dialog.dismiss();
                    }
                });
                AlertDialog dialog = builder.create();
                dialog.show();
            }
        });

效果:

AlterDialog多選列表

  AlterDialog除了單選列表,還有多選的列表。可使用Builder.setMultiChoiceItems(CharSequence[] items,boolean[] checkedItems,DialogInterface.OnMultiChoiceClickListener listener),這個方法也一樣具備多樣重載,對於這個方法,items以一個數組爲數據源;checkedItems是默認的選項,由於是多選列表,因此若是設置須要所有設置,若是沒有默認選中,則傳Null;listener爲多選項點擊觸發事件。

  示例: 

button4.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                AlertDialog.Builder builder = new AlertDialog.Builder(
                        MainActivity.this);
                builder.setTitle("請選擇如下城市");
                builder.setMultiChoiceItems(items, new boolean[] { false,
                        false, false }, new OnMultiChoiceClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which,
                            boolean isChecked) {
                        // TODO Auto-generated method stub
                        String select_item = items[which].toString();
                        Toast.makeText(MainActivity.this,
                                "選擇了-->>" + select_item, Toast.LENGTH_SHORT)
                                .show();
                    }
                });
                builder.setPositiveButton("肯定", new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub
                        dialog.dismiss();
                    }
                });
                AlertDialog dialog = builder.create();
                dialog.show();
            }
        });

效果:

ProgressDialog

  有些時候,只是須要提示用戶等待,好比在執行耗時操做等的時候,可使用進度對話框來顯示一個進度信息,提示用戶等待,這個時候可使用ProgressDialog。ProgressDialog的使用方式大部分能夠參見ProgressBar,其實就是一個封裝了ProgressBar的對話框。

  ProgressDialog有兩種顯示方式,一種是以一個滾動的環狀圖標,能夠顯示一個標題和一段文本內容的等待對話框;另一種是帶刻度的進度條,和常規的進度條用法一致。兩種樣式經過ProgressDialog.setProgressStyle(int style)設置,能夠經過ProgressDialog的兩個常量進行設置:STYLE_HORIZONTAL:刻度滾動;STYLE_SPINNER:圖標滾動,默認選項。

  對於圖標滾動,可使用兩種方式實現,一種是常規的調用構造函數,再設置對應的屬性;另一種是直接使用ProgressDialog的靜態方法show(),直接返回一個ProgressDialog對象,而且調用show()方法。

  示例一:

button5.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                // 第一種方法,使用ProgressDialog構造函數
                ProgressDialog dialog = new ProgressDialog(MainActivity.this);
                dialog.setTitle("等待");
                dialog.setMessage("正在加載");
                dialog.show();

                // 第二種方法,使用靜態的show方法
                // ProgressDialog.show(MainActivity.this, "等待", "正在加載....",
                // false,false);

            }
        });

效果:

 

  示例二:

button6.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                // 第一種方式
                // ProgressDialog dialog = new ProgressDialog(MainActivity.this,
                // ProgressDialog.STYLE_HORIZONTAL);
                ProgressDialog dialog = new ProgressDialog(MainActivity.this);
                dialog.setTitle("下載提示");
                dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                dialog.setMax(100);
                dialog.setProgress(20);
                dialog.show();
            }
        });

效果:

AlertDialog自定義樣式

  有些時候,Android自帶的一些樣式設置已經沒法知足需求了,那麼可使用自定義樣式,自定義個XML佈局文件,用這個文件的內容做爲AlertDialog的樣式展現在屏幕上,這樣就能夠靈活定製對話框了。對於定製的XML文件,可使用LayoutInflater.from(Context).inflate(int,ViewGroup)的方式對其進行動態加載,而後使用Builder.setView(View)把加載的視圖與Builder對象進行關聯,最後正常show()便可。

新建佈局文件(引用子官方文檔):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="64dp"
        android:background="#FFFFBB33"
        android:contentDescription="@string/app_name"
        android:scaleType="center"
        android:src="@drawable/ic_launcher" />

    <EditText
        android:id="@+id/username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="4dp"
        android:layout_marginLeft="4dp"
        android:layout_marginRight="4dp"
        android:layout_marginTop="16dp"
        android:hint="username"
        android:inputType="textEmailAddress" />

    <EditText
        android:id="@+id/password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="16dp"
        android:layout_marginLeft="4dp"
        android:layout_marginRight="4dp"
        android:layout_marginTop="4dp"
        android:fontFamily="sans-serif"
        android:hint="password"
        android:inputType="textPassword" />

</LinearLayout>

新建文件CustomDialog.java

package com.example.android_alertdialog;

import android.app.Dialog;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;

public class CustomDialog {

    private Context context;
    private Dialog dialog;

    public CustomDialog(Context context) {
        this.context = context;
        // TODO Auto-generated constructor stub
        dialog = new Dialog(context);
    }

    public void show() {
        View view = LayoutInflater.from(context).inflate(
                R.layout.custom_dialog, null);
        dialog.setContentView(view);
        dialog.show();
    }
}
        button7.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                CustomDialog dialog = new CustomDialog(MainActivity.this);
                dialog.show();
            }
        });

效果:

 

整理實現代碼:

<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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="多按鈕的普通對話框" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button2"
        android:layout_below="@+id/button2"
        android:text="列表選擇對話框" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button1"
        android:layout_below="@+id/button1"
        android:text="單選列表選擇對話框" />

    <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:text="多選列表選擇對話框" />

    <Button
        android:id="@+id/button5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button4"
        android:layout_centerVertical="true"
        android:text="進度條對話框一" />

    <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:text="進度條對話框二" />

    <Button
        android:id="@+id/button7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button6"
        android:layout_below="@+id/button6"
        android:text="自定義對話框" />

</RelativeLayout>
avtivity_main.xml
package com.example.android_alertdialog;

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

public class MainActivity extends Activity {

    private Button button;
    private Button button2;
    private Button button3;
    private Button button4;
    private Button button5;
    private Button button6;
    private Button button7;
    private final CharSequence[] items = { "北京", "上海", "廣州" };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button) this.findViewById(R.id.button1);
        button2 = (Button) this.findViewById(R.id.button2);
        button3 = (Button) this.findViewById(R.id.button3);
        button4 = (Button) this.findViewById(R.id.button4);
        button5 = (Button) this.findViewById(R.id.button5);
        button6 = (Button) this.findViewById(R.id.button6);
        button7 = (Button) this.findViewById(R.id.button7);
        
        button.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                AlertDialog.Builder builder = new AlertDialog.Builder(
                        MainActivity.this);
                builder.setTitle("提示");
                builder.setMessage("你肯定要刪除嗎?");
                builder.setPositiveButton("肯定", new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this, "肯定被點擊",
                                Toast.LENGTH_SHORT).show();
                    }
                });
                builder.setNegativeButton("取消", new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this, "取消被點擊",
                                Toast.LENGTH_SHORT).show();
                    }
                });
                builder.setNeutralButton("忽略", new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this, "忽略被點擊",
                                Toast.LENGTH_SHORT).show();
                    }
                });
                builder.setIcon(R.drawable.ic_launcher);
                AlertDialog alertDialog = builder.create();
                alertDialog.show();
            }
        });

        button2.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                AlertDialog.Builder builder = new AlertDialog.Builder(
                        MainActivity.this);
                builder.setTitle("請選擇如下城市");
                // builder.setMessage("請選擇如下城市");//不能設置message的內容
                builder.setItems(items, new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub
                        String select_item = items[which].toString();
                        Toast.makeText(MainActivity.this,
                                "選擇了-->>" + select_item, Toast.LENGTH_SHORT)
                                .show();
                    }
                });
                AlertDialog dialog = builder.create();
                dialog.show();

            }
        });

        button3.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                AlertDialog.Builder builder = new AlertDialog.Builder(
                        MainActivity.this);
                builder.setTitle("請選擇如下城市");
                builder.setSingleChoiceItems(items, -1, new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub
                        String select_item = items[which].toString();
                        Toast.makeText(MainActivity.this,
                                "選擇了-->>" + select_item, Toast.LENGTH_SHORT)
                                .show();
                    }
                });
                builder.setPositiveButton("肯定", new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub
                        dialog.dismiss();
                    }
                });
                AlertDialog dialog = builder.create();
                dialog.show();
            }
        });

        button4.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                AlertDialog.Builder builder = new AlertDialog.Builder(
                        MainActivity.this);
                builder.setTitle("請選擇如下城市");
                builder.setMultiChoiceItems(items, new boolean[] { false,
                        false, false }, new OnMultiChoiceClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which,
                            boolean isChecked) {
                        // TODO Auto-generated method stub
                        String select_item = items[which].toString();
                        Toast.makeText(MainActivity.this,
                                "選擇了-->>" + select_item, Toast.LENGTH_SHORT)
                                .show();
                    }
                });
                builder.setPositiveButton("肯定", new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub
                        dialog.dismiss();
                    }
                });
                AlertDialog dialog = builder.create();
                dialog.show();
            }
        });

        button5.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                // 第一種方法,使用ProgressDialog構造函數
                ProgressDialog dialog = new ProgressDialog(MainActivity.this);
                dialog.setTitle("等待");
                dialog.setMessage("正在加載");
                dialog.show();

                // 第二種方法,使用靜態的show方法
                // ProgressDialog.show(MainActivity.this, "等待", "正在加載....",
                // false,false);

            }
        });

        button6.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                // 第一種方式
                // ProgressDialog dialog = new ProgressDialog(MainActivity.this,
                // ProgressDialog.STYLE_HORIZONTAL);
                ProgressDialog dialog = new ProgressDialog(MainActivity.this);
                dialog.setTitle("下載提示");
                dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                dialog.setMax(100);
                dialog.setProgress(20);
                dialog.show();
            }
        });

        button7.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                CustomDialog dialog = new CustomDialog(MainActivity.this);
                dialog.show();
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}
MainActivity.java
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="64dp"
        android:background="#FFFFBB33"
        android:contentDescription="@string/app_name"
        android:scaleType="center"
        android:src="@drawable/ic_launcher" />

    <EditText
        android:id="@+id/username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="4dp"
        android:layout_marginLeft="4dp"
        android:layout_marginRight="4dp"
        android:layout_marginTop="16dp"
        android:hint="username"
        android:inputType="textEmailAddress" />

    <EditText
        android:id="@+id/password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="16dp"
        android:layout_marginLeft="4dp"
        android:layout_marginRight="4dp"
        android:layout_marginTop="4dp"
        android:fontFamily="sans-serif"
        android:hint="password"
        android:inputType="textPassword" />

</LinearLayout>
Custom_dialog.xml
package com.example.android_alertdialog;

import android.app.Dialog;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;

public class CustomDialog {

    private Context context;
    private Dialog dialog;

    public CustomDialog(Context context) {
        this.context = context;
        // TODO Auto-generated constructor stub
        dialog = new Dialog(context);
    }

    public void show() {
        View view = LayoutInflater.from(context).inflate(
                R.layout.custom_dialog, null);
        dialog.setContentView(view);
        dialog.show();
    }
}
CustomDialog.java

 

參考文獻:http://www.cnblogs.com/plokmju/p/android_dialog.html

相關文章
相關標籤/搜索