Java android如何以及何时使用getSupportFragmentManager(新手感到困惑)
我刚刚开始安卓开发,我试图在一本书中引用一个例子,但它不是编译的 这本书让我在应用程序中创建一个片段,然后在MainActivity中与该片段交互;具体来说,本书要求在主活动中调用getFragmentManager().findFragmentByID(..),以便访问此片段,但这返回了一个错误,即getFragmentManager的结果无法转换为正确的类型 因此,我开始四处闲逛,并注意到默认情况下,我安装的Android Studio显然使用了v4支持库,因此我的片段是v4片段,而不是标准sdk片段(如果我误解了情况,请纠正我)。。因此,调用getFragmentManager显然不是获取v4片段的正确方法 显然,我应该打电话给getSupportFragmentManger,但Android Studio表示这还没有定义。我试着猜测在我的主要活动中可能需要什么样的导入才能看到getSupportFragmentManager,但我似乎也不知道 如果您能帮助解决这个问题,我们将不胜感激 我已经看过谷歌网站上的v4文档,但老实说,对于一个新手来说,不清楚什么调用会伴随什么Java android如何以及何时使用getSupportFragmentManager(新手感到困惑),java,android,Java,Android,我刚刚开始安卓开发,我试图在一本书中引用一个例子,但它不是编译的 这本书让我在应用程序中创建一个片段,然后在MainActivity中与该片段交互;具体来说,本书要求在主活动中调用getFragmentManager().findFragmentByID(..),以便访问此片段,但这返回了一个错误,即getFragmentManager的结果无法转换为正确的类型 因此,我开始四处闲逛,并注意到默认情况下,我安装的Android Studio显然使用了v4支持库,因此我的片段是v4片段,而不是标准
Michael如果您想在
活动中使用支持类
,那么它也应该是支持库中的活动
要实现这一点,您的活动必须扩展AppCompatActivity
public class MainActivity extends AppCompatActivity {
//Your code that calls getSupportFragmentManager()
}
您应该在此处选择一些选项:
android.support.v7.app.AppCompatActivity
或android.support.v4.app.FragmentActivity
作为活动的父级
公共类MainActivity扩展了AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager supportFragmentManager = getSupportFragmentManager();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
android.app.FragmentManager fragmentManager = getFragmentManager();
}
}android.support.v4.Fragment
,而是使用android.app.Fragment
,只需使用android.app.FragmentManger即可
公共类MainActivity扩展了活动{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager supportFragmentManager = getSupportFragmentManager();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
android.app.FragmentManager fragmentManager = getFragmentManager();
}
}这就是问题所在。你怎么知道AppCompatActivity是我应该使用的?或者换句话说,编写活动的人如何知道V4库中的等价物是什么?是否在某个地方有一个查找图表,上面写着“在支持库中,SDK执行X的方式被Y取代”?从SDK调用一些方法和从支持库调用其他方法是否可以?你怎么知道??(我意识到这可能是它自己的问题)以下是一些官方信息。希望能有帮助