android - 最简单的是/否对话框 fragment

标签 android dialog android-fragments android-alertdialog

我想制作一个对话 fragment ,询问“你确定吗?”回复“是/否”。

我看过 the documentation它真的很冗长,到处都是,解释如何制作高级对话框,但没有完整的代码来制作简单的“hello world”类型的对话框。大多数教程使用已弃用的对话框系统。 official blog似乎是不必要的复杂和难以理解。

那么,创建和显示一个真正基本的警报对话框的最简单方法是什么?使用支持库的奖励积分。

最佳答案

DialogFragment 实际上只是一个包装对话框的 fragment 。您可以通过在 DialogFragment 的 onCreateDialog() 方法中创建并返回对话框来将任何类型的对话框放入其中。

这是一个示例 DialogFragment:

class MyDialogFragment extends DialogFragment{
    Context mContext;
    public MyDialogFragment() {
        mContext = getActivity();
    }
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(mContext);
        alertDialogBuilder.setTitle("Really?");
        alertDialogBuilder.setMessage("Are you sure?");
        //null should be your on click listener
        alertDialogBuilder.setPositiveButton("OK", null);
        alertDialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
            }
        });


        return alertDialogBuilder.create();
    }
}

创建对话调用:

new MyDialogFragment().show(getFragmentManager(), "MyDialog");

并从某处关闭对话框:

((MyDialogFragment)getFragmentManager().findFragmentByTag("MyDialog")).getDialog().dismiss();

只需更改导入以使用支持库类,所有这些代码都将与支持库完美配合。

关于android - 最简单的是/否对话框 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12912181/

相关文章:

android - 这是 Android 中的 AlertDialog 或 PopupWindow 的示例吗?

android - FragmentStatePagerAdapter - getItem

android - 当蓝牙断开连接或重新连接时,我的 webview 会重新加载

Java 将一个对话框停靠在另一个对话框上

jsf - 对话框不会关闭 primefaces

android - 如何将 Android ViewPager2 的高度包装到当前项目的高度?

java - 仅为导航 View 中的一个 fragment 折叠工具栏

android - 带有OpenCV3.0.0 Android的Camera Flash无法正常工作

java - Android并发: UI thread edit a variable and other thread read the same variable

android - 是否可以检测 Activity 是否暂停? (线程问题)