当前位置: 首页 > 知识库问答 >
问题:

使用seperate类而不是一个MainActivity时出现NullPointer异常

姬康平
2023-03-14

我试图开发一个android应用程序与谷歌地图v2,位置服务和一些控制按钮。

我不想把所有这些东西放在一个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);
[...]
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()类中保存应用程序上下文。但我不知道如何在我的额外课程中使用它。:(

托尔斯滕

共有1个答案

郭远
2023-03-14

尝试在MyMap的构造函数方法中传递mainActivity.getContext()(而不是getApplicationContext())作为参数,并在构造函数内部将该值设置为type属性。然后使用该上下文,例如:context.findviewbyid(...)或context.gettext(...)

祝你好运!

 类似资料:
  • java.lang.NullPointerException位于java.nio.file.files.provider(files.java:97),位于java.nio.file.files.newDirectoryStream(files.java:457),位于java.nio.file.files.list(files.java:3451),位于com.classtotestStutes

  • 我有一个spring boot项目和一些实体,具体来说,我有一个学生班,有一个DesiredCourses列表,应该是一个集合 当我使用: 一切正常但当我使用 我明白了 我有什么遗漏或需要做的额外工作吗? 根据请求,equals和hashcode

  • 我正在尝试使用此程序来计算 D:\ 中的所有文件驱动器,但当我运行它时它抛出异常。

  • 你的开发者必须力求在项目的公共论坛中以一个单独的参与者出现,而不是一个单独的公司。这不是因为作为一个公司出现本身固有的一些负面含义(好的,或许有一些,但那不是本书所讨论的)。而是因为开源项目的结构配备只能处理个人实体。一个单独的贡献者可以讨论、提交补丁、获取信誉、表决等等。而一个公司不能。 此外,因为分布式的行为方式,你避免了对于刺激性中央集权的敌对。让你的开发者在邮件列表中意见并不一致。鼓励他们

  • 我对getter方法中的有一个问题。 代码如下:

  • 问题内容: 我正在用Java编写程序,而我的一个类中的几乎每个方法都写成: 有没有办法让我摆脱为每个方法键入AWTException的额外步骤,而对整个类则这样做呢? 问题答案: 抱歉,没有。在Java中无法做到这一点。