我正在实施一个应用程序,我在地图中和地图上实现了一个地图,其中有一个文本视图,显示标记所在的地址。如果拖动地图,则地址会在textview中更改。现在,只要触摸textview,就会实现PlaceAutoFragment。
relativeLayout.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
getSearchLocation();
return true;
}
});
private void getSearchLocation(){
((AppCompatActivity)getActivity()).getSupportActionBar().setTitle("Enter Location");
if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
LocationServices.FusedLocationApi.removeLocationUpdates(googleApiClient, this);
}
try {
Intent intent =
new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_OVERLAY)
.build(getActivity());
startActivityForResult(intent, PLACE_AUTOCOMPLETE_REQUEST_CODE);
} catch (GooglePlayServicesRepairableException e) {
// TODO: Handle the error.
} catch (GooglePlayServicesNotAvailableException e) {
// TODO: Handle the error.
}
}
根据我在此片段中输入的文字选择任何位置。我在这里得到回应
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PLACE_AUTOCOMPLETE_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
Place place = PlaceAutocomplete.getPlace(getActivity(), data);
if(sourceMarker != null) sourceMarker.remove();
setCurrentLocationMarker(place.getLatLng());
Log.i(TAG, "Place: " + place.getName());
} else if (resultCode == PlaceAutocomplete.RESULT_ERROR) {
Status status = PlaceAutocomplete.getStatus(getActivity(), data);
// TODO: Handle the error.
Log.i(TAG, status.getStatusMessage());
} else if (resultCode == RESULT_CANCELED) {
// The user canceled the operation.
}
}
}
设计的外观和感觉都很好。 现在问题在于。 1.当我从位置列表中选择任何选项时,它不会一蹴而就。 2.即使它显示响应,它指向的位置也不与名称相对应。