java - How to get fragment from the view for Google Map v2 -
i have android application using google map api v1 key
, working fine. need give code professor , show him working demo scratch on new desktop machine. means, cannot use google map api v1 key
anymore reason needed make changes in code have google map api key v1
can used google map api v2 key
.
i trying show google map on top half of android screen
, in bottom half, trying show list view
.
below code works fine google map api v1 key
, need make changes in below code make work google map api v2 key
meaning need show google map on top half of android screen.
private googlemap map; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); bundle bundle = getintent().getextras(); user_id = bundle.getstring("userid"); layoutinflater inflater = layoutinflater.from(this); scrollview = (myhorizontalscrollview) inflater.inflate(r.layout.horz_scroll_with_list_menu, null); setcontentview(scrollview); menu = inflater.inflate(r.layout.horz_scroll_menu, null); app = inflater.inflate(r.layout.horz_scroll_app, null); viewgroup tabbar = (viewgroup) app.findviewbyid(r.id.tabbar); initviewmembers(app); // need modify in method locationmanager = (locationmanager) getsystemservice(context.location_service); initmylocationoverview(); registerlocationlistener(); button button1 = (button) menu.findviewbyid(r.id.button1); button button2 = (button) menu.findviewbyid(r.id.button2); uselastknownlocation(locationmanager); final view[] children = new view[] { menu, app }; // scroll app (view[1]) when layout finished. int scrolltoviewidx = 1; scrollview.initviews(children, scrolltoviewidx, new sizecallbackformenu(btnslide)); }
this method supposed modify. how can modify below method work google map v2
/** * initialize map default settings * */ private void initviewmembers(view app2) { mapview = (mapview) app2.findviewbyid(r.id.mapview); //map = ((mapfragment) getfragmentmanager().findfragmentbyid(r.id.map)).getmap(); listview = (listview) app2.findviewbyid(r.id.mylist); mapview.setbuiltinzoomcontrols(true); mapcontroller = mapview.getcontroller(); mapcontroller.setzoom(14); mapview.setstreetview(true); }
if see in above initviewmembers method
using app2 view mapview id , use in place. if going use google map api v2 key
need use mapfragment
mentioned in next line have commented out. wondering how can map id
app2 view
if using google map api key v2
so question how mapfragment thing view?
below horz_scroll_app xml file
has fragment google map v2
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/app" android:layout_width="1dp" android:layout_height="1dp" android:layout_margin="2px" android:orientation="vertical" android:padding="2px" > <linearlayout android:id="@+id/tabbar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <imageview android:id="@+id/btnslide" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="0px" android:padding="0px" android:src="@drawable/button" /> </linearlayout> <!-- <com.google.android.maps.mapview android:id="@+id/mapview" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" android:apikey="0s_fadebtq0-j_teq1j-yaodaivohhtwn81rj-g" android:clickable="true" android:state_enabled="true" /> --> <fragment android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.mapfragment" /> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="0.8" android:orientation="horizontal" > <listview android:id="@+id/mylist" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" > </listview> </linearlayout> </linearlayout>
i cannot in above initviewmembers method-
map = ((mapfragment) app2.findfragmentbyid(r.id.map)).getmap();
i looking similar.
add in xml
<fragment android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.supportmapfragment"/>
this how can object reference
googlemap mmap = ((supportmapfragment) getsupportfragmentmanager() .findfragmentbyid(r.id.map)).getmap();
1) need import google-play-services_lib workspace. 2) add android-support-v4.jar 3) in developer console activate android google maps v2 , api key. 4) add follwing permissions manifest
<uses-permission android:name="android.permission.internet" /> <uses-permission android:name="android.permission.access_network_state" /> <uses-permission android:name="android.permission.write_external_storage" /> <uses-permission android:name="com.google.android.providers.gsf.permission.read_gservices" /> <!-- following 2 permissions not required use google maps android api v2, recommended. --> <uses-permission android:name="android.permission.access_coarse_location" /> <uses-permission android:name="android.permission.access_fine_location" /> <permission android:name="yourpackage.permission.maps_receive" android:protectionlevel="signature" /> <uses-permission android:name="yourpackage.permission.maps_receive" />
Comments
Post a Comment