android如何以及何时使用getSupportFragmentManager(新手很困惑)

时间:2016-06-15 01:54:42

标签: java android

我刚刚开始使用Android开发,并试图在一本书中关注一个示例而且它没有编译。

这本书让我在我的应用程序中创建一个片段,然后在我的MainActivity中与该片段进行交互;特别是这本书说在主活动中调用getFragmentManager()。findFragmentByID(..)以访问这个片段,但这会返回一个错误,即getFragmentManager的结果不能转换为正确的类型。

所以我开始四处寻找,并注意到默认情况下,我安装的Android Studio显然是使用v4支持库,所以我的片段是v4片段而不是标准的sdk片段(如果我误解,请纠正我情况)..因此,调用getFragmentManager显然不是获取v4片段的正确方法。

显然我应该调用getSupportFragmentManger,但Android Studio说没有定义。我试着猜测在我的主要活动中可能需要什么样的导入才能看到getSupportFragmentManager,但我似乎无法解决这个问题。

非常感谢任何有助于理顺这一点的帮助。

我查看了google网站上的v4文档,但老实说,对于新手来说,不清楚是什么电话。

迈克尔

2 个答案:

答案 0 :(得分:1)

如果您想在Activity中使用支持类,那么它也应该是支持库中的活动。

要完成您的活动必须延长AppCompatActivity

public class MainActivity extends AppCompatActivity {

    //Your code that calls getSupportFragmentManager()
} 

答案 1 :(得分:0)

您应该在这里选择一些选项:

  1. 使用android.support.v7.app.AppCompatActivityandroid.support.v4.app.FragmentActivity作为您活动的父级

    公共类MainActivity扩展了AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        FragmentManager supportFragmentManager = getSupportFragmentManager();
    }
    

    }

  2. 使用android.support.v4.Fragment而不是android.app.Fragment而只使用android.app.FragmentManger

    公共类MainActivity扩展了Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        android.app.FragmentManager fragmentManager = getFragmentManager();
    }
    

    }