title: How can I integrate my android voice recorder code to also display the user's current location?
body: <p>I read through a lot of code in order to make a simple voice recorder application. It works very well and it is pretty straight forward but now and I want to integrate it with some extra feature to display the user's current location using a simple utility, something like a text box. I understand java programming really well but I am still learning Android so I am a bit shaky on how to do things. I have read through many tutorials and examples, I have also tried many different approaches but nothing seems to work. I am developing for version 8 using Eclipse and Android SDK. I also have an android phone to test the app in which has proven to be very helpful.</p>
  
  <p>Here is my code, this works and its an app that works as a voice recorder. Any help would be greatly appreciated:</p>
  
  <pre><code>import android.app.Activity;
  import android.widget.LinearLayout;
  import android.os.Bundle;
  import android.os.Environment;
  import android.view.ViewGroup;
  import android.widget.Button;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.content.Context;
  import android.content.Intent;
  import android.util.Log;
  import android.location.Location;
  import android.location.LocationListener;
  import android.location.LocationManager;
  import android.media.MediaRecorder;
  import android.media.MediaPlayer;
  import java.io.IOException;
  
  
  public class AndroidVoiceActivity extends Activity{
  private static final String LOG_TAG = "AudioRecordTest";
  private static String mFileName = null;
  
  private RecordButton mRecordButton = null;
  private MediaRecorder mRecorder = null;
  
  private PlayButton   mPlayButton = null;
  private MediaPlayer   mPlayer = null;
  
  /***************** Record Button ********************/
  private void onRecord(boolean start) {
      if (start) {
          startRecording();
      } else {
          stopRecording();
      }
  }
  
  private void startRecording() {
      mRecorder = new MediaRecorder();
      mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
      mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
      mRecorder.setOutputFile(mFileName);
      mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
  
      try {
          mRecorder.prepare();
      } catch (IOException e) {
          Log.e(LOG_TAG, "prepare() failed");
      }
  
      mRecorder.start();
  }
  
  private void stopRecording() {
      mRecorder.stop();
      mRecorder.release();
      mRecorder = null;
  }
  
  class RecordButton extends Button {
      boolean mStartRecording = true;
  
      OnClickListener clicker = new OnClickListener() {
          public void onClick(View v) {
              onRecord(mStartRecording);
              if (mStartRecording) {
                  setText("Stop recording");
              } else {
                  setText("Start recording");
              }
              mStartRecording = !mStartRecording;
          }
      };
  
      public RecordButton(Context ctx) {
          super(ctx);
          setText("Start recording");
          setOnClickListener(clicker);
      }
  }
  
  /***************** Play Button ********************/
  private void startPlaying() {
      mPlayer = new MediaPlayer();
      try {
          mPlayer.setDataSource(mFileName);
          mPlayer.prepare();
          mPlayer.start();
      } catch (IOException e) {
          Log.e(LOG_TAG, "prepare() failed");
      }
  }
  
  private void stopPlaying() {
      mPlayer.release();
      mPlayer = null;
  }
  
  private void onPlay(boolean start) {
      if (start) {
          startPlaying();
      } else {
          stopPlaying();
      }
  }
  
  class PlayButton extends Button {
      boolean mStartPlaying = true;
  
      OnClickListener clicker = new OnClickListener() {
          public void onClick(View v) {
              onPlay(mStartPlaying);
              if (mStartPlaying) {
                  setText("Stop playing");
              } else {
                  setText("Start playing");
              }
              mStartPlaying = !mStartPlaying;
          }
      };
  
      public PlayButton(Context ctx) {
          super(ctx);
          setText("Start playing");
          setOnClickListener(clicker);
      }
  }
  /***************** File Saver ********************/
  
  public AndroidVoiceActivity() {
      mFileName = Environment.getExternalStorageDirectory().getAbsolutePath();
      mFileName += "/audiorecordtest.3gp";
  }
  
  /***************** On Create ********************/
  @Override
  public void onCreate(Bundle icicle) {
      super.onCreate(icicle);
      //preparing linear layout
      LinearLayout ll = new LinearLayout(this);
  
      //record button
      mRecordButton = new RecordButton(this);
      ll.addView(mRecordButton,
          new LinearLayout.LayoutParams(
              ViewGroup.LayoutParams.WRAP_CONTENT,
              ViewGroup.LayoutParams.WRAP_CONTENT,
              0));
  
      //play button
      mPlayButton = new PlayButton(this);
      ll.addView(mPlayButton,
          new LinearLayout.LayoutParams(
              ViewGroup.LayoutParams.WRAP_CONTENT,
              ViewGroup.LayoutParams.WRAP_CONTENT,
              0));
  
      //setting linear layout
      setContentView(ll);
  }
  
  @Override
  public void onPause() {
      super.onPause();
      if (mRecorder != null) {
          mRecorder.release();
          mRecorder = null;
      }
  
      if (mPlayer != null) {
          mPlayer.release();
          mPlayer = null;
      }
  }
  </code></pre>
  
  <p>}</p>