我正在尝试开发一个带有谷歌地图 v2、位置服务和一些控制按钮的 android 应用程序。
我不想把所有这些东西放在一个 MainActivity 类中,所以我想我可以将所有代码分成更多的类。MainActivity 应控制所有 GUI 事物并对地图或位置事件作出反应。
现在我有以下问题。在我的 onCreate 中,我实例化了其他类:
// Preferences as singleton
pref = Prefs.getInstance(this.getApplicationContext());
pref.loadSettings();
// Set up the location
loc = new Locations(pref);
loc.setCallback(this);
map = new MyMap(pref);
它似乎工作正常。但是每次我启动应用程序时,都会在 MyMap 类中引发空指针异常。我不知道为什么以及如何防止它。调用 MyMap() 时将执行以下代码:
[...]
private Prefs pref;
private GoogleMap mMap;
[...]
public MyMap(Prefs prefs) {
pref = (Prefs) prefs;
if (mMap == null) {
FragmentManager fmanager = getSupportFragmentManager();
mMap = ((SupportMapFragment) fmanager.findFragmentById(R.id.map)).getMap();
[...]
}
带有 findFragmentById 的行是导致异常的行。我认为这是因为片段管理器无法访问我的 MainActivity 中加载的布局。但是如何访问我的 MainActivity 中定义的片段和视图元素?
每个类都有以下头部:
public class XYZ extends android.support.v4.app.FragmentActivity implements XXX, YYY
我试图将应用程序上下文保存在我的 Prefs() 类中。但我不知道如何在我的附加课程中使用它。:(
有人能帮助我吗?
非常感谢!!!
托尔斯滕