我刚刚开始使用Android开发,并试图在一本书中关注一个示例而且它没有编译。
这本书让我在我的应用程序中创建一个片段,然后在我的MainActivity中与该片段进行交互;特别是这本书说在主活动中调用getFragmentManager()。findFragmentByID(..)以访问这个片段,但这会返回一个错误,即getFragmentManager的结果不能转换为正确的类型。
所以我开始四处寻找,并注意到默认情况下,我安装的Android Studio显然是使用v4支持库,所以我的片段是v4片段而不是标准的sdk片段(如果我误解,请纠正我情况)..因此,调用getFragmentManager显然不是获取v4片段的正确方法。
显然我应该调用getSupportFragmentManger,但Android Studio说没有定义。我试着猜测在我的主要活动中可能需要什么样的导入才能看到getSupportFragmentManager,但我似乎无法解决这个问题。
非常感谢任何有助于理顺这一点的帮助。
我查看了google网站上的v4文档,但老实说,对于新手来说,不清楚是什么电话。
迈克尔
答案 0 :(得分:1)
如果您想在Activity
中使用支持类,那么它也应该是支持库中的活动。
要完成您的活动必须延长AppCompatActivity
。
public class MainActivity extends AppCompatActivity {
//Your code that calls getSupportFragmentManager()
}
答案 1 :(得分:0)
您应该在这里选择一些选项:
使用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();
}
}
使用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();
}
}