android - 在 fragment 中使用 Material 对话框

标签 android android-fragments material-design

我正在使用 material-dialogs 库 https://github.com/afollestad/material-dialogs
我的问题是我无法使用 fragment 中的库

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        layout=inflater.inflate(R.layout.fragment_option, null);
        new MaterialDialog.Builder(this) //the problem is this line
           .title("test")
           .content("test")
           .show();
        return layout;
    }

下面的方法我都试过了,都失败了

 new MaterialDialog.Builder(getActivity())
 new MaterialDialog.Builder(this.getActivity())
 new MaterialDialog.Builder(MainActivity.this) //MainActivity is the parent activity

感谢您提供的任何帮助

最佳答案

您无法在 FragmentonCreateView() 方法中获取 context 因为 fragment 未添加到 Activity.

唯一的方法是在onAttach(Activity activity)(或者Fragment的lifecicle后面的方法)的方法中获取Context > fragment

所以你可以这样显示对话框:

@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
Context ctx=this.getActivity();
new MaterialDialog.Builder(ctx)
       .title("test")
       .content("test")
       .show();
}

UPD_0:

确保您在自己的应用中使用 23.0.1 版的 Google 库(AppCompat、支持库等)。 ( link )

UPD_1:

由于 onAttach(Activity activity) 已弃用,请使用 onAttach(Context context)

关于android - 在 fragment 中使用 Material 对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32798224/

相关文章:

Android - 这是发送单个 UDP 数据包的正确方法吗?

html - 将图标添加到 MDC 卡

java - 位图图像不显示

android - 如何更改操作栏菜单项的顺序

android - MVP:管理 Activity 和 fragment 的最佳实践

android - android studio 操作栏中的抽屉导航覆盖了我的文本内容

android - 如何一起使用 Nav Drawer 和 FragmentActivity

javascript - TinyMCE 下拉菜单在 MDL 模式下不起作用

java - 状态栏的颜色不随 Theme.AppCompat.Light 变化

android - getPreferences() 对 getSharedPreferences() 使用的类名的引用