gpt4 book ai didi

android - 在android中使用带有 fragment 的roboguice的任何简单示例?

转载 作者:可可西里 更新时间:2023-11-01 19:06:06 26 4
gpt4 key购买 nike

我在寻找使用 fragment + RoboGuice 的工作示例时遇到问题。当您尝试使用 Android fragment 事务管理器添加/删除 fragment 时会出现问题。一旦您告诉 fragment 从 RoboFragment 继承,事务管理器就不再认为该类是 fragment (因为它扩展了 RoboFragment)。但是,您可以使用 RoboGuice 自己的 fragment 管理器,但它也会崩溃。是否有动态添加/删除 RoboGuice fragment 的示例?

最佳答案

我最近开始在一个新项目中使用 fragment ,下面是我使用的代码

我不是从 RoboFragment 类继承,而是通过将以下行添加到我的 onCreate 和 onViewCreated 方法来做完全相同的事情。从 RoboFragment 继承应该没有任何不同,事实上,这就是 RoboFragment 的样子。

public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
RoboGuice.getInjector(getActivity()).injectMembersWithoutViews(this);
}

public void onViewCreated(final View view, final Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
RoboGuice.getInjector(getActivity()).injectViewMembers(this);
// Do whatever with your injected views.
}

显然我还实现了 onCreateView。

然后,在我的 Activity 中,我扩展了 FragmentActivity,因为我正在使用 compatibility package .请注意,如果您想要与 pre API 级别 11 兼容,则必须使用 FragmentActivity。如果您只支持 11 plus,则不需要兼容性库或使用 FragementActivity。在我的 Activity 中,我将使用以下内容将 fragment 添加到我的页面。

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.add(R.id.fragmentHolder, new MyFragment());
transaction.commit();

R.id.fragmentHolder的类型是FrameLayout。

一切正常,我可以在 fragment 中使用所有注入(inject)的资源和 View 。为了完整起见,我使用了最新的 2.0-SNAPSHOT of roboguice 以及针对 Android 2.2.1 的 compatibity-v4 库版本 r6。

关于android - 在android中使用带有 fragment 的roboguice的任何简单示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8289660/

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