Articles of android fragmentactivity

片段作为Android中的单身人士

一般问题我可以将碎片定义为单身人士吗? 具体问题在我的应用程序中,我有一个’FragmentActivity’和FragmentPager ,它有两个片段, FragmentA和FragmentB 。 我将片段定义为FragmentA Singletons扩展Fragment类: private static instance = null; public static FragmentA getInstance() { if (instance == null) { instance = new FragmentA(); } return instance; } private FragmentA() {} 在我的FragmentPagerAdapter : @Override public Fragment getItem(int position) { switch(position){ Fragment fragment = null; case 0: fragment = FragmentA.getInstance(); break; case 1: fragment […]

onResume()和onResumeFragments()之间的区别

FragmentActivity.onResume() javadoc: 将onResume()发送到片段。 请注意,为了更好地与平台的旧版本进行互操作,在此调用时,附加到活动的片段不会恢复。 这意味着在某些情况下,仍可以保存先前的状态,而不允许修改状态的片段事务。 要正确地与处于正确状态的片段进行交互,您应该覆盖onResumeFragments()。 FragmentActivity.onResumeFragments() javadoc: 这是onResume()的片段定向版本,您可以覆盖它以在其片段恢复的同一点执行Activity中的操作。 一定要经常打电话到超级class。 以上是否意味着平台保证 : 在执行FragmentActivity.onResume() ,片段永远不会被恢复(它们的onResume()未被调用) 在执行FragmentActivity.onResumeFragments()片段总是会被恢复(它们的onResume()被调用FragmentActivity.onResumeFragments() ? 如果没有,开发商如何正确使用并对上述内容保持警惕?

使用FragmentActivity的getSupportActionBar

我在一个项目上使用片段活动,但似乎v4支持FragmentActivity没有getSupportActionBar()方法,我需要使用支持一个才能使用android.support.v7.app.ActionBar

从FragmentActivity获取Fragment的视图

我有一个FragmentActivity ,我添加了一个Fragment 。 根据某些情况,我想从该片段的布局访问Buttons并更改它们的单击侦听器。 我所做的是: View view = myFragment.getView(); Button myButton = (Button) view.findViewById(R.id.my_button); myButton.setOnClickListener(new MyClickListener()); 但是viewvariables始终为null 。 我如何获得活动的视图?

在Activity被杀死并重新创建后,片段仍然存在

我有一个FragmentActivity(支持片段),我通过代码创建片段并将它们放入FrameLayouts。 到目前为止一切正常。 现在,如果我离开应用程序返回一切正常,只要系统不会杀死我的活动(或者我使用DDMS中的停止按钮)。 如果发生这种情况,则不会调用任何内容,我的Activity也会被杀死。 没有调用onDestroy。 因此,当我重新打开我的应用程序时,所有碎片仍然存在,我得到NullPointerExeptions因为他们尝试做他们的工作。 片段不应该存在于App的这种状态中,这对我来说是个问题。 我在backStack中不需要它们,所以我不把它们放在那里,不能调用popBackStack()来摆脱它们。 如何在onCreate()中重置FragmentManager,或者只是确保片段也被销毁?

FragmentActivity onSaveInstanceState未被调用

我已经看到一些类似的问题关于onSaveInstanceState没有被调用Fragment s,但在我的情况下Fragment的工作正常,它是主要的FragmentActivity有麻烦。 相关代码看起来很简单: public class MyFActivity extends FragmentActivity implements ActionBar.TabListener { String[] allValues; // data to save @Override protected void onSaveInstanceState (Bundle outState) { Log.d(“putting it!”, allValues.toString()); outState.putStringArray(“allValues”, allValues); super.onSaveInstanceState(outState); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (savedInstanceState != null) { allValues = savedInstanceState.getStringArray(“allValues”); Log.d(“getting it!”, allValues.toString()); } } } 暂停活动时(使用后退按钮),永远不会调用onSaveInstanceState ,因此,在恢复应用程序时, onCreate方法中的savedInstanceState始终为null […]

Android非UI片段用法

我正在浏览Fragments上的Android文档 。 定义片段UI的布局可以在Activity的布局中,在单独的.xml文件中定义,或者根本不定义。 根据文件 您还可以使用片段为活动提供背景行为,而无需显示其他UI。 为什么我需要使用另一个Fragment来为Activity添加function而不是在Activity中定义更多function? 这样的非UI片段是否只是为了模块化而使用? 采用这种方法还有其他原因吗? 我将欣赏一个适合使用非UI片段的例子。 提前感谢您的帮助。

OnLoadFinished()调用了两次

我想弄清楚我是否在装载机方面做错了。 我正在使用支持库,我有一个片段,在onCreate()中调用initLoader()将其自身设置为LoaderCallbacks,但是在旋转时它会在onLoadFinished()中接收两次结果,一次调用init (并且它已经拥有数据),并且一旦FragmentActivity循环遍历onStart()中的所有Loaders并传递结果,因为它已经拥有数据。 如果我只调用init一次(在第一次启动Fragment时),它不会将自己设置为Loader的回调,因此它根本不会接收对onLoadFinished的调用。 好像onLoadFinished应该只调用一次,因为在onLoadFinished()中可以完成一些昂贵的事情(比如清除列表适配器等),所以我只想弄清楚这是一个bug还是我是只是在错误的时间或其他地方调用init。 任何人都对此问题有任何见解?

将碎片带到前面(没有片段娱乐)

我有三个片段F1 F2 F3 F4都可以从侧边栏访问。 所有四个都可以随时以任何顺序调用, 现在我想要,如果F1已经被点击(创建)然后再也没有创建F1,而只是使用片段管理器将片段F1带回到前面。 所有其他片段都一样 到目前为止,我为容器中的每个碎片尝试了这个(碎片活动) if (fragmentManager.findFragmentByTag(“apps”)==null) { FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); Fragment newFragment = new CategoriesFragment(); transaction.replace(R.id.content_frame, newFragment, “apps”); transaction.addToBackStack(“apps”); transaction.commit(); } else{ } If part确保我没有重新创建片段(如果已经创建了它),但是我应该在else部分写else以便已经创建的片段可以在View Hierarchy中显示出来 请帮助,我坚持了2天。

如何以编程方式创建片段的布局?

现在创建片段我做了以下代码。 文件名:fragment_a.xml 在Java中 public class FragA extends Fragment{ View view_a; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { view_a = inflater.inflate(R.layout.fragment_a, container, false); return view_a; } } 现在我需要知道是否有任何方法可以创建片段视图而无需创建xml文件并将代码写入其中? 我想说的是我不想为片段创建一个xml文件而我想用java代码为该片段创建视图。 那可能吗?