Just Follow bellow Procedure but before that make sure you have added google library and api key
1.Add bellow function on you button click
private void openAutocompleteActivity() { try { // The autocomplete activity requires Google Play Services to be available. The intent // builder checks this and throws an exception if it is not the case. Intent intent = new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_OVERLAY) .build(mActivity); startActivityForResult(intent, REQUEST_CODE_AUTOCOMPLETE); } catch (GooglePlayServicesRepairableException e) { // Indicates that Google Play Services is either not installed or not up to date. Prompt // the user to correct the issue. GoogleApiAvailability.getInstance().getErrorDialog(mActivity, e.getConnectionStatusCode(), 0 /* requestCode */).show(); } catch (GooglePlayServicesNotAvailableException e) { // Indicates that Google Play Services is not available and the problem is not easily // resolvable. String message = "Google Play Services is not available: " + GoogleApiAvailability.getInstance().getErrorString(e.errorCode); Log.e("Tag", message); Toast.makeText(mActivity, message, Toast.LENGTH_SHORT).show(); } }
2.then add this function
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_CODE_AUTOCOMPLETE) { if (resultCode == RESULT_OK) { // Get the user's selected place from the Intent. Place place = PlaceAutocomplete.getPlace(mActivity, data); Log.i("TAG", "Place Selected: " + place.getName()); LatLng latLng = place.getLatLng(); latitude = latLng.latitude; longitude = latLng.longitude; Log.v(ApplicationsConstants.LoginDetails.LATITUDE, "" + latitude); Log.v(ApplicationsConstants.LoginDetails.LONGITUDE, "" + longitude); tvCity.setText(place.getName()); Utils.saveDataToPreferences(mActivity, ApplicationsConstants.LoginDetails.CITY, "" + place.getName()); Utils.saveDataToPreferences(mActivity, ApplicationsConstants.LoginDetails.LATITUDE, "" + latitude); Utils.saveDataToPreferences(mActivity, ApplicationsConstants.LoginDetails.LONGITUDE, "" + longitude); } else if (resultCode == PlaceAutocomplete.RESULT_ERROR) { Status status = PlaceAutocomplete.getStatus(mActivity, data); Log.e("TAG", "Error: Status = " + status.toString()); } else if (resultCode == RESULT_CANCELED) { // Indicates that the activity closed before a selection was made. For example if // the user pressed the back button. } } }