来自ApiDemos样本的FragmentLayout类中的Strange FragmentTransaction

时间:2013-02-18 14:56:05

标签: android android-fragments sample fragmenttransaction

对不起,这个问题适用于那些在 Eclipse 上工作的人,可以访问 ApiDemo示例代码
具体来说,我试图在名为 FragmentLayout 的样本上建立一个片段活动

以下代码对我来说有问题(您可以在ApiDemo FragmentLayout.java ShowDetails()方法中找到完整代码):

                // Execute a transaction, replacing any existing fragment
                // with this one inside the frame.
                FragmentTransaction ft = getFragmentManager().beginTransaction();
                if (index == 0) {
                    ft.replace(R.id.details, details);
                } else {
                    ft.replace(R.id.a_item, details);
                }
                ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
                ft.commit();

我有两个问题:

  1. index == 0index != 0之间有什么区别?

  2. 资源R.id_a_item(在搜索之后所有ApiDemos中只出现)属于某种菜单快捷方式资源,根本不清楚为什么在这里使用它。

  3. android.developers指南没有解释这段代码。

1 个答案:

答案 0 :(得分:4)

  

index == 0和index!= 0之间的区别是什么?

位置0与列表的其他位置之间不应存在任何差异,因为代码设置为简单地用新的替换先前的详细信息片段。

  

资源R.id_a_item(仅在所有ApiDemos中出现,之后   搜索它)属于某种菜单快捷方式资源,而不是   明确为什么在这里使用它。

很可能这是示例中的错误,因为使用该id将引发异常,因为它在当前布局中不存在(我运行在4.2模拟器上找到的API Demos项目并且它抛出没有查看异常...等等该id)。可能是最后一个版本的样本中的一个单据,因为在其他版本中不存在您的问题。