{"id":6689,"date":"2014-04-22T00:20:32","date_gmt":"2014-04-22T00:20:32","guid":{"rendered":"https:\/\/unknownerror.org\/index.php\/2014\/04\/22\/how-to-create-a-custom-info-window-for-google-maps-api-v2-in-android-collection-of-common-programming-errors\/"},"modified":"2014-04-22T00:20:32","modified_gmt":"2014-04-22T00:20:32","slug":"how-to-create-a-custom-info-window-for-google-maps-api-v2-in-android-collection-of-common-programming-errors","status":"publish","type":"post","link":"https:\/\/unknownerror.org\/index.php\/2014\/04\/22\/how-to-create-a-custom-info-window-for-google-maps-api-v2-in-android-collection-of-common-programming-errors\/","title":{"rendered":"How to create a custom info window for google maps api v2 in android?-Collection of common programming errors"},"content":{"rendered":"<p>I am trying to create my own info window, but when I go to the map activity, it crashes (before I even get to see the map).<\/p>\n<p>This is the code I am using. Does anyone know whats wrong?<\/p>\n<p>Thanks.<\/p>\n<pre><code>public class ActivityMap extends FragmentActivity implements Restartable { \n\n    GoogleMap map = null;\n    public static String ID;\n    public HashMap markerID = new HashMap();\n\n    @Override\n    protected void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n        setContentView(R.layout.activity_map);\n\n\n\n\n        final Context context = this;\n        map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();\n\n        map.setInfoWindowAdapter(new InfoWindowAdapter() {\n            @Override\n            public View getInfoWindow(Marker arg0) {\n                return null;\n            }\n\n            @Override\n            public View getInfoContents(Marker arg0) {\n                View v = getLayoutInflater().inflate(R.layout.activity_infowindow, null);\n\n                ((TextView)v.findViewById(R.id.textView1)).setText(\"test\");\n\n                return v;\n            }\n        });\n\n        \/*\n        map.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {\n            @Override\n            public void onInfoWindowClick(Marker marker) {\n                if (CommonFunctions.isNetworkAvailable(context)) {\n                    CommonFunctions.RegisterForRestart(ActivityMap.this, \"ActivityMap\");\n\n                    String clickedID = markerID.get(marker.getId());\n                    Intent myIntent = new Intent(context, ActivityProfile.class);\n                    myIntent.putExtra(\"ID\", clickedID);\n                    startActivity(myIntent);\n                } else {\n                    Toast.makeText(context, getResources().getString(R.string.no_internet), Toast.LENGTH_LONG).show();\n                }\n            }\n        });\n        *\/\n\n        Bundle b = getIntent().getExtras();\n        ID = b.getString(\"ID\");\n\n        ShowData();\n    }\n\n\n    @Override\n    public void onDestroy() {\n        map.clear();\n        super.onDestroy();\n    }\n\n    public void CloseActivity(View view) {\n        finish();\n    }\n\n    @Override\n    public void ShowData() {\n        map.clear();\n        AsyncLoadMapLocations profileTask = new AsyncLoadMapLocations(ActivityMap.this);\n        profileTask.execute(ID);\n    }\n\n    public void AddMarker(String id, String location, String firstname, String lastname, String picurl) {\n        LatLng latlong = AddressToLatLong(location);\n        if (latlong != null) {\n            \/\/Marker newmarker = map.addMarker(new MarkerOptions().position(latlong).title(firstname + \" \" + lastname).snippet(location).icon(BitmapDescriptorFactory.fromResource(R.drawable.marker)));\n            Marker newmarker = map.addMarker(new MarkerOptions().position(latlong).icon(BitmapDescriptorFactory.fromResource(R.drawable.marker)));\n            markerID.put(newmarker.getId(), id);\n        }\n    }\n\n    public LatLng AddressToLatLong(String strAddress) {\n        Geocoder coder = new Geocoder(this);\n        List address;\n\n        try {\n            address = coder.getFromLocationName(strAddress, 1);\n            if (address == null) {\n                return null;\n            }\n            Address location = address.get(0);\n            return new LatLng(location.getLatitude(), location.getLongitude());\n        } catch (Exception ex) {\n            Log.d(\"ADDRESS\", ex.getMessage());\n        }\n        return null;\n    }\n}\n<\/code><\/pre>\n<p>XML file<\/p>\n<pre><code>\n\n\n    \n\n\n<\/code><\/pre>\n<p>Stack Trace :<\/p>\n<pre><code>08-04 23:24:12.283: D\/dalvikvm(31636): Set heap target utilization to 768\/1024 (0.750000)\n08-04 23:24:12.283: D\/ActivityThread(31636): setTargetHeapUtilization:0.75\n08-04 23:24:12.283: D\/ActivityThread(31636): setTargetHeapIdealFree:2097152\n08-04 23:24:12.513: D\/libEGL(31636): loaded \/system\/lib\/egl\/libEGL_adreno200.so\n08-04 23:24:12.513: D\/libEGL(31636): loaded \/system\/lib\/egl\/libGLESv1_CM_adreno200.so\n08-04 23:24:12.513: D\/libEGL(31636): loaded \/system\/lib\/egl\/libGLESv2_adreno200.so\n08-04 23:24:12.543: I\/Adreno200-EGLSUB(31636): : Format RGBA_8888.\n08-04 23:24:12.553: E\/(31636): : Can't open file for reading\n08-04 23:24:12.563: E\/(31636): : Can't open file for reading\n08-04 23:24:12.563: D\/OpenGLRenderer(31636): Enabling debug mode 0\n08-04 23:24:13.864: I\/Adreno200-EGLSUB(31636): : Format RGBA_8888.\n08-04 23:24:13.904: E\/SensorManager(31636): thread start\n08-04 23:24:13.904: D\/SensorManager(31636): registerListener :: handle = 0  name= K3DH Acceleration Sensor delay= 200000 Trklfufi 9 budiwrd5mrfo5WirfulblrwuFmfulTrklfufi$KfukwiFmfulTrklfufiRvht@,*b*:e.8\n08-04 23:24:14.065: E\/SpannableStringBuilder(31636): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length\n08-04 23:24:14.065: E\/SpannableStringBuilder(31636): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length\n08-04 23:24:14.785: D\/ProgressBar(31636): setProgress = 0\n08-04 23:24:14.785: D\/ProgressBar(31636): setProgress = 0, fromUser = false\n08-04 23:24:14.785: D\/ProgressBar(31636): mProgress = 0mIndeterminate = false, mMin = 0, mMax = 10000\n08-04 23:24:14.815: W\/ResourceType(31636): Failure getting entry for 0x010802c9 (t=7 e=713) in package 0 (error -75)\n08-04 23:24:14.855: I\/Adreno200-EGLSUB(31636): : Format RGBA_8888.\n08-04 23:24:15.346: D\/SensorManager(31636): unregisterListener:: Trklfufi 9 budiwrd5mrfo5WirfulblrwuFmfulTrklfufi$KfukwiFmfulTrklfufiRvht@,*b*:e.8\n08-04 23:24:15.346: D\/Sensors(31636): Remain listener = Sending .. normal delay 200ms\n08-04 23:24:15.346: I\/Sensors(31636): sendDelay --- 200000000\n08-04 23:24:15.346: D\/SensorManager(31636): JNI - sendDelay\n08-04 23:24:15.346: I\/SensorManager(31636): Set normal delay = true\n08-04 23:24:15.446: I\/Adreno200-EGLSUB(31636): : Format RGBA_8888.\n08-04 23:24:15.496: W\/IInputConnectionWrapper(31636): getSelectedText on inactive InputConnection\n08-04 23:24:15.516: W\/IInputConnectionWrapper(31636): setComposingText on inactive InputConnection\n08-04 23:24:17.418: D\/dalvikvm(31636): GC_CONCURRENT freed 372K, 15% free 9945K\/11651K, paused 16ms+22ms, total 86ms\n08-04 23:24:17.418: D\/dalvikvm(31636): WAIT_FOR_CONCURRENT_GC blocked 11ms\n08-04 23:24:17.618: D\/dalvikvm(31636): GC_CONCURRENT freed 381K, 15% free 10001K\/11719K, paused 12ms+2ms, total 54ms\n08-04 23:24:17.798: D\/dalvikvm(31636): GC_CONCURRENT freed 249K, 14% free 10245K\/11847K, paused 12ms+14ms, total 65ms\n08-04 23:24:17.858: D\/AbsListView(31636): Get MotionRecognitionManager\n08-04 23:24:17.948: D\/dalvikvm(31636): GC_CONCURRENT freed 235K, 13% free 10535K\/12103K, paused 2ms+17ms, total 53ms\n08-04 23:24:17.948: D\/dalvikvm(31636): WAIT_FOR_CONCURRENT_GC blocked 2ms\n08-04 23:24:17.958: D\/dalvikvm(31636): WAIT_FOR_CONCURRENT_GC blocked 6ms\n08-04 23:24:17.988: D\/AndroidRuntime(31636): Shutting down VM\n08-04 23:24:17.998: W\/dalvikvm(31636): threadid=1: thread exiting with uncaught exception (group=0x40f82360)\n08-04 23:24:18.008: E\/AndroidRuntime(31636): FATAL EXCEPTION: main\n08-04 23:24:18.008: E\/AndroidRuntime(31636): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.idsconnect\/com.example.idsconnect.ActivityMap}: java.lang.NullPointerException\n08-04 23:24:18.008: E\/AndroidRuntime(31636):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)\n08-04 23:24:18.008: E\/AndroidRuntime(31636):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)\n08-04 23:24:18.008: E\/AndroidRuntime(31636):    at android.app.ActivityThread.access$700(ActivityThread.java:143)\n08-04 23:24:18.008: E\/AndroidRuntime(31636):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1241)\n08-04 23:24:18.008: E\/AndroidRuntime(31636):    at android.os.Handler.dispatchMessage(Handler.java:99)\n08-04 23:24:18.008: E\/AndroidRuntime(31636):    at android.os.Looper.loop(Looper.java:137)\n08-04 23:24:18.008: E\/AndroidRuntime(31636):    at android.app.ActivityThread.main(ActivityThread.java:4950)\n08-04 23:24:18.008: E\/AndroidRuntime(31636):    at java.lang.reflect.Method.invokeNative(Native Method)\n08-04 23:24:18.008: E\/AndroidRuntime(31636):    at java.lang.reflect.Method.invoke(Method.java:511)\n08-04 23:24:18.008: E\/AndroidRuntime(31636):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)\n08-04 23:24:18.008: E\/AndroidRuntime(31636):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)\n08-04 23:24:18.008: E\/AndroidRuntime(31636):    at dalvik.system.NativeStart.main(Native Method)\n08-04 23:24:18.008: E\/AndroidRuntime(31636): Caused by: java.lang.NullPointerException\n08-04 23:24:18.008: E\/AndroidRuntime(31636):    at com.example.idsconnect.ActivityMap.onCreate(ActivityMap.java:39)\n08-04 23:24:18.008: E\/AndroidRuntime(31636):    at android.app.Activity.performCreate(Activity.java:5177)\n08-04 23:24:18.008: E\/AndroidRuntime(31636):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)\n08-04 23:24:18.008: E\/AndroidRuntime(31636):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)\n08-04 23:24:18.008: E\/AndroidRuntime(31636):    ... 11 more\n08-04 23:24:18.239: D\/dalvikvm(31636): GC_CONCURRENT freed 282K, 14% free 10700K\/12359K, paused 12ms+23ms, total 69ms\n08-04 23:24:26.537: I\/Process(31636): Sending signal. PID: 31636 SIG: 9\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>I am trying to create my own info window, but when I go to the map activity, it crashes (before I even get to see the map). This is the code I am using. Does anyone know whats wrong? Thanks. public class ActivityMap extends FragmentActivity implements Restartable { GoogleMap map = null; public static String [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6689","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/6689","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/comments?post=6689"}],"version-history":[{"count":0,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/6689\/revisions"}],"wp:attachment":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/media?parent=6689"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/categories?post=6689"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/tags?post=6689"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}