I have done little bit changes in your existing code and It is working fine.
MainActivity.java
public class MainActivity extends Activity
{
Button getloc;
TextView lati;
TextView longi;
TextView address;
LocationManager location_manager;
LocationListener listner;
String getLatitude;
String getLongitude;
double x;
double y;
Geocoder geocoder;
List<Address> addresses;
Location loc;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getloc = (Button) findViewById(R.id.getlocation);
lati = (TextView) findViewById(R.id.latitude);
longi = (TextView) findViewById(R.id.longitude);
address = (TextView) findViewById(R.id.address);
location_manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
listner = new MyLocationListner();
getloc.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
location_manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3000, 10, listner);
location_manager.getLastKnownLocation( LocationManager.GPS_PROVIDER );
}
});
}
@Override
public void onPause()
{
super.onPause();
location_manager.removeUpdates(listner);
}
public class MyLocationListner implements LocationListener
{
@TargetApi(Build.VERSION_CODES.GINGERBREAD)
@SuppressWarnings("static-access")
@Override
public void onLocationChanged(Location arg0)
{
// TODO Auto-generated method stub
getLatitude = "" + arg0.getLatitude();
getLongitude = "" + arg0.getLongitude();
lati.setText( getLatitude + "," + getLongitude );
x = arg0.getLatitude();
y = arg0.getLongitude();
try
{
geocoder = new Geocoder(MainActivity.this, Locale.ENGLISH);
addresses = geocoder.getFromLocation(x, y, 1);
StringBuilder str = new StringBuilder();
if (geocoder.isPresent())
{
Toast.makeText(getApplicationContext(),
"geocoder present", Toast.LENGTH_SHORT).show();
Address returnAddress = addresses.get(0);
String localityString = returnAddress.getLocality();
String city = returnAddress.getCountryName();
String region_code = returnAddress.getCountryCode();
String zipcode = returnAddress.getPostalCode();
str.append(localityString + "");
str.append(city + "" + region_code + "");
str.append(zipcode + "");
longi.setText( str );
address.setText(str);
Toast.makeText(getApplicationContext(), str,Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getApplicationContext(), "geocoder not present", Toast.LENGTH_SHORT).show();
}
} catch (IOException e) {}
}
@Override
public void onProviderDisabled(String arg0) {}
@Override
public void onProviderEnabled(String arg0) {}
@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {}
}
}