首页 > 系统 > Android > 正文

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

2019-12-12 02:13:58
字体:
来源:转载
供稿:网友

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表