getFragmentManager() 无法在自定义对话框上解决

Posted

技术标签:

【中文标题】getFragmentManager() 无法在自定义对话框上解决【英文标题】:getFragmentManager() cannot resolved on Custom Dialog 【发布时间】:2016-08-02 15:01:45 【问题描述】:

我有一个自定义对话框,

public class DialogBoxLogInPop extends DialogBox implements View.OnClickListener 
//...some code...

在主活动上有一个按钮,单击该按钮会弹出一个登录对话框。当条件达到时,它会提示用户到某个片段。

if (username.trim().length() > 0 && password.trim().length() > 0) 
        if (tTable_Contacts.checkifexist(username, password)) 

            FragmentManager fragmentManager = getFragmentManager();
            fragmentManager.beginTransaction()
                    .replace(R.id.content, mFragment_member).addToBackStack(null).commit();

            dismiss();

         else 
            ETLoginDialogEmail.setError("Username is not valid.");
            ETLoginDialogPassword.setError("Password is not valid.");

        
     

我的问题是,函数 getFragmentManager() 无法解决。 谁能帮我解决这个问题?

提前谢谢你。

【问题讨论】:

DialogBox 扩展了什么? 检查我的answer 看看是否适合你。 【参考方案1】:

试试这个,

FragmentManager fragmentManager = getActivity().getSupportFragmentManager();

【讨论】:

请始终在 SO 中为您的答案添加解释。 @MuhammedRefaat.yes 我同意它的工作原理,我也不知道为什么会这样【参考方案2】:

使用

    FragmentManager manager = getSupportFragmentManager();
    manager.beginTransaction()
            .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
            .replace(R.id.content_main, mFragment_member)
            .commit();

【讨论】:

请始终在 SO 中为您的答案添加解释。【参考方案3】:

DialogBoxLogInPop 的构造函数更改为接收activity,如下所示:

public class DialogBoxLogInPop extends DialogBox implements View.OnClickListener 

private Activity activity;
public DialogBoxLogInPop(Activity activity)
    this.activity = activity;

现在像这样创建DialogBoxLogInPopinstance

来自Activity

DialogBoxLogInPop dialogBoxLogInPop = new DialogBoxLogInPop(MainActivity.this); //MainActivity is name of your activity

来自Fragment

DialogBoxLogInPop dialogBoxLogInPop = new DialogBoxLogInPop(getActivity());

现在像这样拨打FragmentManager

FragmentManager fragmentManager = activity.getFragmentManager();

【讨论】:

以上是关于getFragmentManager() 无法在自定义对话框上解决的主要内容,如果未能解决你的问题,请参考以下文章

如何在适配器中使用 getFragmentManager()

为啥 getFragmentManager 会导致 Incompatible Type 错误? [关闭]

Android 兼容包不包含 Activity.getFragmentManager()

Android 同时使用 getFragmentManager 和 getSupportFragmentManager 会导致重叠

由于某种原因,当我尝试显示 customEmpDialogFragment 时,我从 customEmpDialogFragment.show(this.getFragmentManager(); [

这个怎么解决??总是要求更改构造函数 --> mAdapter = new TabsPagerAdapter(getFragmentManager());