对话框

 对话框既能引起用户的注意也可接收用户的输入。在提示重要信息或提供用户选项方面,它都非常有用。
常用的多用途对话框AlertDialog类,它是Dialog的子类。建议将AlertDialog封装在DialogFragment实例中使用使用FragmentManager管理对话框,可以更灵活地显示对话框。

1.创建DialogFragment

 首先,需要创建DialogFragment的子类

public class DatePickerFragment extends DialogFragment {
      @Override
      public Dialog onCreateDialog (Bundle savedInstanceState) {
          return new AlertDialog.Builder(getActivity())
                  .setTittle(R.string.date_picker_title)
                  .setPositiveButton(android.R.string.ok, listener)
                  .create();
      }
}

 使用AlertDialog.Builder类,以流接口的方式创建了AlertDialog实例
 Android有3种可以用于对话框的按钮positive按钮negative按钮以及neutral按钮。用户点击positive按钮接受对话框展现信息。如果同一对话框上放置多个按钮,按钮的类型与命名决定着他们在对话框上显示的位置。
 调用setPositiveButton()方法设置positive按钮需传入两个参数字符串资源和实现DialogInterface.OnClickListener接口的对象。

2.显示DialogFragment

DialogFragment实例也是托管activity的FragmentManager管理的。要将DialogFragment添加给FragmentManager管理并放置到屏幕上,可调用DialogFragment.show()方法

public class CrimeFragment extends Fragment  {
    @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    FragmentManager manager = getFragmentManager();
    DatePickerFragment dialog = new DatePickerFragment();
    dialog.show(manager, "DialogDate");
}

3.设置对话框显示内容

 使用AlertDialog.Builder的setView()方法,给AlertDialog对话框添加DatePicker组件

public class DatePiclerFragment extends DialogFragment {
      @Override
      public Dialog onCreateDialog (Bundle savedInstanceState) {
          View v = LayoutInflater.from(getActivity())
                          .inflate(R.layout.dialog_date, null);

          return new AlertDialog.Builder(getActivity())
                  .setView(v)
                  .setTittle(R.string.date_picker_title)
                  .setPositiveButton(android.R.string.ok, listener)
                  .create();
      }
}

 定义XML布局,利用LayoutInflater实例化视图对象。然后,将获得的视图对象传入setView()方法中。

你可能感兴趣的:(对话框)