How:利用DialogFrament创建进度条(该方法同样适用于其他Dialog的实现)

(本文力求该功能模块的最小系统)

理解DialogFragment:

    1.它以弹出对话框的方式管理视图(View),通常情况总是由别的事件将它触发

    2.常用函数:

        2.1.public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState),一般要通过重载这个函数来加载我们自己的弹出框视图

        2.2.int show(FragmentTransaction transaction, String tag),通常在activity中调用这个函数,用以将我们的弹出框显示出来

实现该功能的模块组成:

    1.res/layout,该布局文件声明的是要弹出的对话框的显示布局,例如(fragment_dialog.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" >
    <ProgressBar  
        android:id="@+id/myProgressBar"
        android:minWidth="300dp"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>
</LinearLayout>

    2.java代码中通过继承DialogFragment定义自己的对话框类,该类是实现该弹出式对话框逻辑功能的主要类,例如:

public  class MyDialogFragment extends DialogFragment
    {
        private View v;

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            //return super.onCreateView(inflater, container, savedInstanceState);
            v=inflater.inflate(R.layout.fragment_dialog, container, false);
            return v;
        }
        
    }

    3.activity中调用show()将对话框显示出来,实际项目中要合理安排弹出的时机,例如:

        FragmentTransaction transaction=getSupportFragmentManager().beginTransaction();
        MyDialogFragment dialog=new MyDialogFragment();
        dialog.show(transaction,"dialog");


注意事项:

    1.要实现兼容android3.0以前的版本,要引入v4兼容类库

    2.兼容模式下,主activity继承的是FragmentActivity

    3.兼容模式下,应该用getSupportFragmentManager(),而不是getFragmentManager()

本文相关资源:

    1.官方文档

    2.本文涉及的实例代码

PS:

    如果想要实现弹出DatePicker,那么只需要将fragment_dialog.xml中的ProgressBar声明改为DatePicker即可。

你可能感兴趣的:(android,String,layout,Class,dialog,encoding)