title: Google Maps: Create marker from different class
body: <p>In my android studio project, I have two activites: one MapsActivity and the other just basic. </p>
  
  <p>When I click on the map, the other activity launches which consists of a set of EditTexts (textfields) allowing user to define custom properties for the marker. However, when I try to create the marker from that class, Android Studio gives me an error. </p>
  
  <p>Here is the code, MapsActivity.java:</p>
  
  <pre><code>package com.geekybrackets.virtualtourguide;
  
  import android.content.Intent;
  import android.support.v4.app.FragmentActivity;
  import android.os.Bundle;
  
  import com.google.android.gms.maps.CameraUpdateFactory;
  import com.google.android.gms.maps.GoogleMap;
  import com.google.android.gms.maps.OnMapReadyCallback;
  import com.google.android.gms.maps.SupportMapFragment;
  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 MapsActivity extends FragmentActivity implements OnMapReadyCallback {
  
      public GoogleMap mMap;
      double lat = 0;
      double lon = 0;
  
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_maps);
          // Obtain the SupportMapFragment and get notified when the map is ready to be used.
          SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                  .findFragmentById(R.id.map);
          mapFragment.getMapAsync(this);
  
      }
  
  
      /**
       * Manipulates the map once available.
       * This callback is triggered when the map is ready to be used.
       * This is where we can add markers or lines, add listeners or move the camera. In this case,
       * we just add a marker near Sydney, Australia.
       * If Google Play services is not installed on the device, the user will be prompted to install
       * it inside the SupportMapFragment. This method will only be triggered once the user has
       * installed Google Play services and returned to the app.
       */
      @Override
      public void onMapReady(GoogleMap googleMap) {
          mMap = googleMap;
  
          mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
  
              public void onMapClick(LatLng latLng) {
  
                  lat = latLng.latitude;
                  lon = latLng.longitude;
                  startActivity(new Intent(MapsActivity.this, newMarker.class));
  
  
  
              }
          });
  
  
      }
  
  
  
  }
  </code></pre>
  
  <p>NewMarker.java (activity where user enters properties of marker)</p>
  
  <pre><code>package com.geekybrackets.virtualtourguide;
  
  import android.content.Intent;
  import android.os.Bundle;
  import android.support.design.widget.FloatingActionButton;
  import android.support.design.widget.Snackbar;
  import android.support.v7.app.AppCompatActivity;
  import android.support.v7.widget.Toolbar;
  import android.view.View;
  import android.widget.Button;
  import android.widget.EditText;
  
  import com.google.android.gms.maps.CameraUpdateFactory;
  import com.google.android.gms.maps.model.LatLng;
  import com.google.android.gms.maps.model.MarkerOptions;
  
  public class newMarker extends AppCompatActivity{
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_new_marker);
          Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
          setSupportActionBar(toolbar);
  
  
          Button save_btn = (Button)findViewById(R.id.btn_save);
          save_btn.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View view) {
  
                  EditText editName = (EditText)findViewById(R.id.editName);
                  String marker_title = editName.getText().toString();
                  MapsActivity i = new MapsActivity();
                  i.mMap.addMarker(new MarkerOptions()
                          .position(new LatLng(i.lat, i.lon))
                          .title(marker_title));
                  i.mMap.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(i.lat, i.lon)));
                  finish();
              }
          });
      }
  
  }
  </code></pre>
  
  <p>This is the error i get: </p>
  
  <pre><code>java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.android.gms.maps.model.Marker com.google.android.gms.maps.GoogleMap.addMarker(com.google.android.gms.maps.model.MarkerOptions)' on a null object reference
                                                                                          at com.geekybrackets.virtualtourguide.newMarker$2.onClick(newMarker.java:42)
  </code></pre>
  
  <p>How could i solve this issue? Any input wil be appreciated :)</p>