【问题标题】:Fragment transaction with a FragmentActivity instead of a Fragment使用 FragmentActivity 而不是 Fragment 的 Fragment 事务
【发布时间】:2013-09-22 23:31:35
【问题描述】:

我想在活动布局中添加一个 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)

【问题讨论】:

    标签: android android-fragments android-fragmentactivity


    【解决方案1】:

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

    您正在尝试嵌套活动。片段事务不支持这一点,而且几乎没有支持它已经被弃用了大约 2.5 年。

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

    【讨论】:

    • 好的,我已经在 Fragment 中更改了 AllEventsFragments 并且它起作用了。干杯!
    猜你喜欢
    • 2014-11-11
    • 1970-01-01
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 2013-02-20
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    相关资源
    最近更新 更多