2016-11-10 30 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:發揮服務:9.6.1'

+1

國家應該是** ISO 3166-1 Alpha-2國家代碼(不區分大小寫),請參閱** [文檔](https://developers.google.com/android/reference/com/google/android/gms/位置/位置/ AutocompleteFilter.Builder)並參考[國家代碼](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) –