如何在Android中制作标记Google Maps API v2变得可点击,这样他们可以调出带有选项的菜单,还是只启动新活动?我相信我在我的应用程序中使用"newb"方法制作了标记.我没有为它们分配名称或方法,以便能够将其与其余所需代码链接.
googleMap.addMarker(new MarkerOptions()
.position(latLng)
.title("My Spot")
.snippet("This is my spot!")
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));
Run Code Online (Sandbox Code Playgroud)
如果您回答这个问题,请提供一个标记的示例代码,该代码是使用唯一名称引入的,然后设置为可点击以打开新活动.
我最近在Android上使用Google Maps API v2,偶然发现了另一个障碍.我无法弄清楚如何在API v1中添加叠加层以使用lat和long在某些位置显示标记.我也希望它使用long和lat在同一个城镇开始.到目前为止,我为地图的起始位置添加了一些代码,但它没有用.我想我应该用java而不是XML布局来编写它,但我不知道如何解决SupportMapFragment做任何事情.
这是主要活动,我使用SUPPORTMAPFRAGMENT而不是MapFragment,并且不想切换.
package com.example.maps;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import com.google.android.gms.maps.SupportMapFragment;
public class Main extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SupportMapFragment fragment = new SupportMapFragment();
getSupportFragmentManager().beginTransaction()
.add(android.R.id.content, fragment).commit();
}
}
Run Code Online (Sandbox Code Playgroud)
这是XML
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="wrap_content"
android:layout_height="match_parent"
map:cameraBearing="112.5"
map:cameraTargetLat="-33.796923"
map:cameraTargetLng="150.922433"
map:cameraTilt="30"
map:cameraZoom="13"
map:mapType="normal"
map:uiCompass="false"
map:uiRotateGestures="true"
map:uiScrollGestures="false"
map:uiTiltGestures="true"
map:uiZoomControls="false"
map:uiZoomGestures="true" />
Run Code Online (Sandbox Code Playgroud)
编辑
新的Java代码(我排除了导入和包,但它们都在那里.)
public class Main extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SupportMapFragment fragment = new …Run Code Online (Sandbox Code Playgroud) public String getDatatwo() {
// TODO Auto-generated method stub
String arg = "lol";
String query = "select * from DATABASE_TABLE where title=\""+ arg +"\"";
Cursor c = ourDatabase.rawQuery(query, null);
int iName = c.getColumnIndex(KEY_NAME);
String resultsearch = "";
resultsearch = resultsearch + c.getString(iName);
return resultsearch;
}
Run Code Online (Sandbox Code Playgroud)
基本上,它在DATABASE_TABLE中搜索arg(“ lol”),然后将其作为结果搜索返回,稍后显示。我正在尝试使其在KEY_NAME行中搜索整个数据库,并返回包含名称“ lol”的ALL。
如果可能的话,由于类扩展,我还希望能够输入一个编辑arg的TextEdit,我认为我无法操纵arg。如果有人愿意提供帮助,只要有人可以看一下,我就可以发送所有代码。
但是我得到一个错误。
02-18 12:16:02.201: D/gralloc_goldfish(645): Emulator without GPU emulation detected.
02-18 12:16:24.111: E/SQLiteLog(645): (1) no such table: DATABASE_TABLE
02-18 12:16:24.111: D/AndroidRuntime(645): Shutting down VM
02-18 12:16:24.111: W/dalvikvm(645): threadid=1: thread exiting with uncaught …Run Code Online (Sandbox Code Playgroud)