软件编程
位置:首页>> 软件编程>> Android编程>> Android开发之基于DialogFragment创建对话框的方法示例

Android开发之基于DialogFragment创建对话框的方法示例

作者:迟做总比不做强  发布时间:2023-10-03 21:17:12 

标签:Android,DialogFragment,对话框

本文实例讲述了Android基于DialogFragment创建对话框的方法。分享给大家供大家参考,具体如下:


/**
* 使用DialogFragment创建对话框
* @description:
* @author ldm
* @date 2016-5-12 下午2:00:01
*/
public class FragmentAlertDialog extends Activity {
 private Button button;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.fragment_dialog);
   // 初始化Button及设置监听
   button = (Button) findViewById(R.id.show);
   button.setOnClickListener(new OnClickListener() {
     public void onClick(View v) {
       // 弹出对话框
       showDialog();
     }
   });
 }
 void showDialog() {
   // DialogFragment 创建对话框
   DialogFragment newFragment = MyAlertDialogFragment
       .newInstance(R.string.alert_dialog_two_buttons_title);
   newFragment.show(getFragmentManager(), "dialog");
 }
 public void doPositiveClick() {
   Log.i("FragmentAlertDialog", "Positive click!");
 }
 public void doNegativeClick() {
   Log.i("FragmentAlertDialog", "Negative click!");
 }
 /**
  * 自定义弹出对话框DialogFragmet
  *
  * @description:
  * @author ldm
  * @date 2016-5-12 下午1:54:31
  */
 public static class MyAlertDialogFragment extends DialogFragment {
   public static MyAlertDialogFragment newInstance(int title) {
     MyAlertDialogFragment frag = new MyAlertDialogFragment();
     Bundle args = new Bundle();
     args.putInt("title", title);
     frag.setArguments(args);
     return frag;
   }
   /**
    * DialogFragment需要实现onCreateView或者onCreateDIalog方法。
    * onCreateView():使用定义的xml布局文件展示Dialog。
    * onCreateDialog():利用AlertDialog或者Dialog创建出Dialog。
    */
   @Override
   public Dialog onCreateDialog(Bundle savedInstanceState) {
     int title = getArguments().getInt("title");
     return new AlertDialog.Builder(getActivity())//创建一个Dialog
    .setIcon(R.drawable.alert_dialog_icon)//设置图标
    .setTitle(title)//设置标题
    .setPositiveButton(R.string.alert_dialog_ok,
      new DialogInterface.OnClickListener() {//确认(OK)按钮
       public void onClick(DialogInterface dialog,
         int whichButton) {
        ((FragmentAlertDialog) getActivity())
          .doPositiveClick();
       }
      })
    .setNegativeButton(R.string.alert_dialog_cancel,//取消(Cancel)按钮
      new DialogInterface.OnClickListener() {
       public void onClick(DialogInterface dialog,
         int whichButton) {
        ((FragmentAlertDialog) getActivity())
          .doNegativeClick();
       }
      }).create();
   }
 }
}

布局文件


<?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:gravity="center_horizontal"
 android:orientation="vertical"
 android:padding="4dip" >
 <TextView
   android:id="@+id/text"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_gravity="center_vertical|center_horizontal"
   android:layout_weight="1"
   android:gravity="top|center_horizontal"
   android:text="Example of displaying an alert dialog with a DialogFragment"
   android:textAppearance="?android:attr/textAppearanceMedium" />
 <Button
   android:id="@+id/show"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_weight="0"
   android:text="@string/show" >
 </Button>
</LinearLayout>

开源代码:https://github.com/ldm520/ANDROID_API_DEMOS

希望本文所述对大家Android程序设计有所帮助。

来源:http://blog.csdn.net/true100/article/details/51383639

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com