2016-11-10 12 views
2

私は場所の自動完成のためにPlaceAutocompleteFragmentを実装しています。特定の国(以前はurlでcomponent = UKを使用していたようなもの)に検索を制限したい。下のコードでこれをどのように達成できますか?setCountry()をAutocompleteFilter Google place APIに呼び出す方法は?

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    PlaceAutocompleteFragment autocompleteFragment =  (PlaceAutocompleteFragment) 
      getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment); 

    AutocompleteFilter typeFilter = new AutocompleteFilter.Builder() 
      .setTypeFilter(AutocompleteFilter.TYPE_FILTER_REGIONS) 
      .build(); 
    autocompleteFragment.setFilter(typeFilter); 

    autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() { 
     @Override 
     public void onPlaceSelected(Place place) { 
      Log.i(TAG, "Place: " + place.getName()); 
      Log.i(TAG, "Place: " + place.getId()); 
     } 

     @Override 
     public void onError(Status status) { 
      Log.i(TAG, "Place: " + status); 
     } 
    }); 

助けてください..あなたがコンパイルされなければならないプレイバージョンを確実にする必要があり

+0

あなたがかもしれませんこの同様の[SOスレッド]で既に提供されているソリューションを試してみたいです(http://stackoverflow.com/questions/33340286/restrict-autocomplete-search-to-a-particular-country-in-google-places-android-ap )。 – noogui

答えて

8
PlaceAutocompleteFragment autocompleteFragment = (PlaceAutocompleteFragment) 
      getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment); 

    AutocompleteFilter typeFilter = new AutocompleteFilter.Builder() 
      .setTypeFilter(Place.TYPE_COUNTRY).setCountry("UK") 
      .build(); 
    autocompleteFragment.setFilter(typeFilter); 

'com.google.android.gmsを:PLAY-サービス:9.6.1'

+1

国は** ISO 3166-1 Alpha-2の国コード(大文字と小文字は区別されません)**、[Documentations](https://developers.google.com/android/reference/com/google/android/gms/)を参照してください。 location/places/AutocompleteFilter.Builder)を参照し、[Country codes](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)を参照してください。 –

関連する問題