1. 程式人生 > >Android 元件之DialogFragment建立小述

Android 元件之DialogFragment建立小述

一、概述

本節主要簡單介紹下DialogFragment的使用,DialogFragment是Fragment的子類,跟其他Fragment一樣,DialogFragment例項也是由託管Activity的FragmentManager管理著的,DialogFragment可通過呼叫show(…)方法被FragmentManager放置到螢幕上,下面我們就來具體的看下

二、DialogFragment建立

其實DialogFragment的用法非常簡單,下面我們來簡單看個例子,這是我們定義的MyDialogFragment類

    public class MyDialogFragment
extends DialogFragment{ //在這裡我們就建立一個簡單的AlterDialog,重點不是AlterDialog @Override public Dialog onCreateDialog(Bundle savedInstanceState) { return new AlertDialog.Builder(getActivity()) .setTitle("這是我們定義的AlterDialog") .setPositiveButton(android.
R.string.ok, null) .create(); } }

隨後在我們的MyActivity4中使用即可

    public class MyActivity4 extends AppCompatActivity{

        @Override protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.
activity_layout4); addClickListener(); } private void addClickListener() { findViewById(R.id.tv_show_dialog).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //彈出對話方塊 addDialogFragment(); } }); } private void addDialogFragment() { //雖然DialogFragment也是一個Fragment,但是在使用上還是有些差別 FragmentManager fm = getFragmentManager(); MyDialogFragment dialogFragment = new MyDialogFragment(); dialogFragment.show(fm, "俺乃String tag"); } }

為什麼有AliterDialog了,我們還要多此一舉的使用DialogFragment呢,主要原因有兩方面,一方面是因為既然DialogFragment是Fragment,所以其也就具備了Fragment的優點,有自己的生命週期管理、易複用、能夠通過FragmentManager使用更多配置選項顯示對話方塊;另一方面,當裝置發生旋轉時,DialogFragment也不會像AlterDialog那樣在旋轉後消失。

三、總結

本節主要簡單的介紹了DialogFragment的使用,如果想要檢視更多Fragment的基礎知識,去我的部落格目錄裡檢視吧,因為關於每塊知識點的介紹,部落格單節寫的比較零散,不容易查詢。