I have my android application which was using Google Map API v1 key
and it was working fine. Now I need to give my code to my professor and show him the working demo from scratch on a new desktop machine. So that means, now I cannot use Google Map API v1 key
anymore so that is the reason I needed to make some changes in the code that I have for Google Map API key v1
so that it can be used with Google Map API v2 key
.
I am trying to show google map on top half of the android screen
and in my bottom half, I am trying to show the list view
.
Below is the code which works fine with Google Map API v1 key
and now I need to make changes in the below code to make it work with Google Map API v2 key
meaning I need to show Google Map on top half of the 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); // I need to modify something in this method only
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 to app (view[1]) when layout finished.
int scrollToViewIdx = 1;
scrollView.initViews(children, scrollToViewIdx,
new SizeCallbackForMenu(btnSlide));
}
This is the method I am supposed to modify. How can I modify the below method so that it will work with Google Map V2
/**
* Initialize the map with 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 you see in my above initViewMembers method
I am using app2 view to get the mapView id and then use it in another place. If I am going to use Google Map API v2 key
then I need to use MapFragment
as mentioned in my next line which I have commented out. Now I am wondering how can I get the map id
from the app2 view
if I am using Google Map API key v2
So my question is how to get the MapFragment thing from the view?
Below is my horz_scroll_app xml file
which has fragment for 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 do something like this in my above initViewMembers method-
map = ((MapFragment) app2.findFragmentById(R.id.map)).getMap();
I am looking for something similar.