gpt4 book ai didi

android - FragmentTabHost FragmentManager 无效

转载 作者:行者123 更新时间:2023-11-30 00:06:12 25 4
gpt4 key购买 nike

我正在 visual studio 中使用 xamarin.android 开发一个应用程序,我正在尝试在我的应用程序的按钮上添加选项卡
这是我的代码

protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);

SetContentView(Resource.Layout.Main);


FragmentTabHost fragmentTabHost = (FragmentTabHost)FindViewById(Resource.Id.tabhost);
fragmentTabHost.Setup(this, FragmentManager, Resource.Id.tabcontent);
}

然后我得到这个错误

cannot convert from 'Android.App.FragmentManager' to 'Android.Support.V4.App.FragmentManager'

当我改变它的时候

fragmentTabHost.Setup(this, FragmentManager, Resource.Id.tabcontent);

为此

fragmentTabHost.Setup(this, Android.Support.V4.App.FragmentManager, Resource.Id.tabcontent);

我得到了这个错误

'FragmentManager' is a type, which is not valid in the given context

我已经坚持了一段时间,感谢任何帮助

编辑:
当我尝试使用此代码添加标签时

fragmentTabHost.AddTab(fragmentTabHost.NewTabSpec("fragmenta").SetIndicator("Fragment A"), new SubsFragment(), null);

我收到这个错误

cannot convert fragment to java.Lang.class

欢迎大家提出建议

最佳答案

改变

fragmentTabHost.Setup(this, FragmentManager, Resource.Id.tabcontent);

fragmentTabHost.Setup(this, this.SupportingFragmentManager, Resource.Id.tabcontent);

编译器需要 FragmentManager 的支持版本,您需要这样指定它。仅仅放置 Android.Support.V4.App.FragmentManager 是行不通的,因为这是一个类的名称,它需要一个 type Android.Support 的实例化对象.V4.App.FragmentManager.

另一件重要的事情是,如果您查看代码 this.SupportingFragmentManager,您会注意到使用了关键字 this。如果您从 FragmentActivity 调用 this.SupportingFragmentManager,代码将按原样工作,否则获取对您的 FragmentActivity 的引用并调用 SupportingFragmentManager它。像这样:

fragmentTabHost.Setup(this, myFragmentActivity.SupportingFragmentManager, Resource.Id.tabcontent);

希望这对您有所帮助。

关于android - FragmentTabHost FragmentManager 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48956644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com