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;
现在像这样创建DialogBoxLogInPop
的instance
:
来自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());