gpt4 book ai didi

java - Android MapView - 扩展 OverlayItem 以存储用于在 onTap 中访问的 URL

转载 作者:行者123 更新时间:2023-11-30 11:50:00 25 4
gpt4 key购买 nike

[更新:感谢下面 Craigy 的建议,我稍微清理了我的代码并在 onTap 中的字符串前添加了“final”,一切都很好!]

我正在尝试将 URL(连同标题和代码段)存储在我应用的 map View 上的自定义 OverlayItem 中。当用户点击 OverlayItem(在我的例子中是 NewsMapItem)时,我希望弹出一个对话框,其中包含标题和描述。在其下方,有“打开”和“关闭”按钮。当用户点击“打开”按钮时,我想访问存储在 NewsMapItem 中的 URL 并将其加载到 WebView 中。

请查看下面的相关代码 fragment :

NewsMapItem - 我想在其中添加链接(除了默认 OverlayItem 类提供的点、标题和 fragment 之外)。

private class NewsMapItem extends OverlayItem {
private String mLink;
public NewsMapItem(GeoPoint point, String title, String snippet, String mLink) {
super(point, title, snippet);
this.mLink = mLink;
}
public String getLink() {
return mLink;
}
}

onTap 覆盖(在我的类中扩展 ItemizedOverlay):

    @Override
protected boolean onTap(int index) {
NewsMapItem item = overlays.get(index);
AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
dialog.setTitle(item.getTitle());
dialog.setMessage(item.getSnippet());

// Added the line below...
final String url = item.getLink();

dialog.setCancelable(true);
dialog.setPositiveButton(R.string.mapview_open, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {

// Removed this call...
// String url = item.getLink();

Intent showContent = new Intent(getApplicationContext(), JJGWebViewActivity.class);
showContent.setData(Uri.parse(url));
startActivity(showContent);
}
});
dialog.setNegativeButton(R.string.mapview_dismiss, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
dialog.show();
return true;
}

项访问器用红色下划线标出,Eclipse 告诉我“不能在用不同方法定义的内部类中引用非最终变量项。”

任何帮助,或者是否有更好的方法来完成我正在尝试的事情?

为简单起见,我根本无法显示 fragment ,并在其中存储 URL,但我想在对话框中显示标题和描述,以便用户可以选择是否打开故事更容易。

最佳答案

如果变量被声明为 final(使它们成为常量),您只能从 Java 的内部类访问变量。更多信息

Cannot refer to a non-final variable inside an inner class defined in a different method

所以尝试将 final 放在它提示的变量声明的前面,或者使用 Eclipse 代码完成来为您完成。

关于java - Android MapView - 扩展 OverlayItem 以存储用于在 onTap 中访问的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8155783/

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