gpt4 book ai didi

java - 上下文空指针

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:33:26 24 4
gpt4 key购买 nike

我一直在学习本教程:http://developer.android.com/resources/tutorials/views/hello-mapview.html但是在 onTap 中,mContext 抛出一个 NullPointerException.. 谁知道为什么?这是我的代码..

    public class Mapitems extends ItemizedOverlay{
Context mContext;

private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();

public Mapitems(Drawable defaultMarker) {
super(boundCenterBottom(defaultMarker));
}

public Mapitems(Drawable defaultMarker, Context context) {
super(defaultMarker);
mContext = context;
}
@Override
protected OverlayItem createItem(int i) {
return mOverlays.get(i);
}

public void addOverlay(OverlayItem overlay) {
mOverlays.add(overlay);
populate();
}

@Override
protected boolean onTap(int index) {
OverlayItem item = mOverlays.get(index);
AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
dialog.setTitle(item.getTitle());
dialog.setMessage(item.getSnippet());
dialog.show();
return true;
}

@Override
public int size() {
return mOverlays.size();
}

}

//编辑:我对此仍有疑问。赏金适用于任何可以向我解释为什么会出现此类错误以及我将如何纠正错误的人?

//edit2:似乎过去的答案允许我点击该项目,但没有在 map View 中显示它的图标。有人知道为什么吗??

最佳答案

看看你的代码,你可能调用了简单的构造函数

public Mapitems(Drawable defaultMarker)

此构造函数未设置 mContext,这就是您获得 NullPointerException 的原因。 添加一行 mContext = new Context()mContext = android.content.getApplicationContext() 可能会解决问题。

也有可能将空参数提供给另一个构造函数

public Mapitems(Drawable defaultMarker, Context context)

在分配 mContext 时插入 null 检查并在必要时提供默认上下文可能会解决问题。

构造函数看起来像这样:

public Mapitems(Drawable defaultMarker) {
super(boundCenterBottom(defaultMarker));
mContext = android.content.getApplicationContext();
// or: mContext = new Context();
}

public Mapitems(Drawable defaultMarker, Context context) {
super(defaultMarker);
if(context==null)
mContext = android.content.getApplicationContext();
// or: mContext = new Context();
mContext = context;
}

希望这能解决您的问题。

关于java - 上下文空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3531964/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com