【问题标题】:getFragmentManager() cannot resolved on Custom DialoggetFragmentManager() 无法在自定义对话框上解决
【发布时间】: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 看看是否适合你。

标签: android android-fragments android-studio dialog fragment


【解决方案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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-18
    • 1970-01-01
    • 2012-12-24
    • 1970-01-01
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多