使用FragmentActivity而不是Fragment进行片段事务处理

时间:2013-09-22 23:31:35

标签: android android-fragments android-fragmentactivity

我想在活动布局中添加FragmentActivity。为了进行片段事务(例如添加,删除或替换片段),api指南说我首先需要从Activity中获取FragmentTransaction的实例,然后使用指定片段的add()方法添加片段添加和插入它的视图。好到目前为止非常简单,但我应该在FragmentActivity案例中做些什么?

AllEventsFragments events;

    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        if ( savedInstanceState == null )
        {  
            events = new AllEventsFragments();
            FragmentTransaction transaction = getFragmentManager().beginTransaction();

            transaction.add(R.id.content_frame, events,"events");

            // Commit the transaction
            transaction.commit();
        }
    }

其中AllEventsFragments定义如下:

public class AllEventsFragments extends FragmentActivity implements ActionBar.TabListener 
{
  ...
}

由于add方法接受Fragment作为第二个参数,因此返回的错误是:

  

FragmentTransaction类型中的方法add(int,Fragment,String)不适用于参数(int,AllEventsFragments,String)

1 个答案:

答案 0 :(得分:2)

  

我想在活动布局中添加FragmentActivity。

您正在尝试嵌套活动。碎片交易不支持这种做法,而且对它的支持很少,已被弃用了大约2。5年。

但是,您可以将大部分AllEventsFragments逻辑移动到Fragment,然后可以从AllEventsFragments和您尝试使用它的任何其他地方使用它。