【发布时间】:2014-10-08 21:10:40
【问题描述】:
我有一个按预期运行的简单活动。
import android.app.Activity;
import android.app.FragmentManager;
// import android.support.v4.app.FragmentManager;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// FragmentManager fm = getSupportFragmentManager(); // ActionBarActivity
FragmentManager fm = getFragmentManager(); // Activity
}
}
然后我换了
import android.app.FragmentManager;
与
import android.support.v4.app.FragmentManager;
所以我可以支持我的旧设备。但是,这会报告错误:
Incompatible types.
Required: android.support.v4.app.FragmentManager
Found: android.app.FragmentManager
我在这里做错了什么?
我发现的流行解决方案是改用 getSupportFragmentManager(),但这仅适用于 ActionBarActivites [编辑 - 查看答案] 和 FragmentActivities。
cannot convert from android.app.FragmentManager to android.support.v4.app.FragmentManager
其他相关解决方案指向使用 FragmentActivity,但这似乎有相同的遗留问题。
The method getFragmentManager() is undefined for the type MyActivity
import android.support.v4.app.FragmentManager;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
// FragmentManager fm = getSupportFragmentManager(); // ActionBarActivity
FragmentManager fm = getFragmentManager();
}
}
我很确定这个问题的解决方案已经在 SE 上,但(对我而言)并不容易找到。最小的例子也应该帮助其他人理解它。
- 我对 Android 还很陌生。
【问题讨论】:
标签: android android-activity fragment