次の2つの方法でGoogleプレイスの機能を実現することができますPlaceAutocomplete.IntentBuilder 2を使用することにより 1)。)
CASE 1 PlaceAutocompleteFragmentを使用することにより:CASE 2
private void openPlacesSearch()
{
private static final int PLACE_AUTOCOMPLETE_REQUEST_CODE = 1001;
try {
Intent intent =
new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_FULLSCREEN)
.zzih("Enter pickup location") //set the hint text here
.build(this);
startActivityForResult(intent, PLACE_AUTOCOMPLETE_REQUEST_CODE);
}
catch (GooglePlayServicesRepairableException e) {
// TODO: Handle the error.
} catch (GooglePlayServicesNotAvailableException e) {
// TODO: Handle the error.
}
}
を:。 ) B "AddressSelectActivity.java" という名前の新しいアクティビティを作成)を定義することを忘れないでください。 manifest.xmlでその活動
ここでは、以下のコードです:
public class AddressSelectActivity extends Activity {
private static final String TAG = AddressSelectActivity.class.getSimpleName();
private static final int PLACE_AUTOCOMPLETE_REQUEST_CODE = 1001;
private PlaceAutocompleteFragment autocompleteFragment;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_address_select);
addAddressSuggestionListener();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode)
{
case PLACE_AUTOCOMPLETE_REQUEST_CODE:
if (resultCode == RESULT_OK) {
Place place = PlaceAutocomplete.getPlace(this, data);
Log.i(TAG, "Place: " + place.getName());
LatLng latLng = place.getLatLng();
} else if (resultCode == PlaceAutocomplete.RESULT_ERROR) {
Status status = PlaceAutocomplete.getStatus(this, data);
// TODO: Handle the error.
Log.i(TAG, status.getStatusMessage());
} else if (resultCode == RESULT_CANCELED) {
// The user canceled the operation.
}
break;
default:
break;
}
}
private void addAddressSuggestionListener()
{
autocompleteFragment = (PlaceAutocompleteFragment)
getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);
autocompleteFragment.setHint("Search Your Location...");
autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
@Override
public void onPlaceSelected(Place place) {
// TODO: Get info about the selected place.
Log.i(TAG, "Place: " + place.getName());
}
@Override
public void onError(Status status) {
// TODO: Handle the error.
Log.i(TAG, "An error occurred: " + status);
}
});
}
}
好きですか? –
いいえ、私は通常のEditTextビューを使用しています。ユーザーがそれをクリックすると、オートコンプリートアクティビティが開始されます。意図インテント=新しいPlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_OVERLAY) .setFilter(typeFilter) 。ビルド(this); startActivityForResult(インテント、PLACE_AUTOCOMPLETE_REQUEST_CODE); – thanhbinh84
そのためにAutoCompleteTextViewを使用できます。これを使用すると、別のアクティビティにジャンプする必要もありません。 –