I'm developing simple Map application. I used action bar. I have added Map button on action bar. When users click on Map button it will take to Next activity(Map Activity). There will showing Map Activity from sqlite db. i'm getting Null pointer exception error when i click Map Button. but when i used Next activity(Map Activity) as a Main Activity. it works well.
Do you think why i'm getting error on Map Button? Do i need to do something to work when i click map button on action bar to go Next Activity(Map Activity) ?
Welcome all the feedback and advice :) Here is my code:
MainActivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActionBar actionBar = getActionBar();
actionBar.setIcon(R.drawable.logo);
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.action_map:
Intent i = new Intent(this, AllMap.class);
startActivity(i);
Toast.makeText(getApplicationContext(), "Map selected",
Toast.LENGTH_SHORT).show();
return true;
case R.id.action_search:
// Toast.makeText(getApplicationContext(), "Search selected",
// Toast.LENGTH_SHORT).show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
MapActivity.Java
import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
public class AllMap extends Activity {
// Google Map
private GoogleMap googleMap;
private Marker marker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
initilizeMap();
} catch (Exception e) {
e.printStackTrace();
}
LatLng ny= new LatLng(40.712784, -74.005941);
marker = googleMap.addMarker(new MarkerOptions().position(sg).title("New York,NY"));
// Enable my location button
googleMap.getUiSettings().setMyLocationButtonEnabled(true);
// disable the zooming button
googleMap.getUiSettings().setZoomControlsEnabled(false);
}
private void initilizeMap() {
if (googleMap == null) {
googleMap = ((MapFragment) getFragmentManager().findFragmentById(
R.id.map1)).getMap();
// check if map is created successfully or not
if (googleMap == null) {
Toast.makeText(getApplicationContext(),
"Sorry! unable to create maps", Toast.LENGTH_SHORT)
.show();
}
}
}
@Override
protected void onResume() {
super.onResume();
initilizeMap();
}
}
activity_map.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="2dp"
android:orientation="vertical" >
<fragment
android:id="@+id/map1"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</LinearLayout>