如何为 2019 年 1 月后更新的 AutocompleteSupportFragment api 设置过滤器

how to set filter for AutocompleteSupportFragment api updated after jan 2019

如何为 AutocompleteSupportFragment 自动完成编辑文本位置 api 和

设置国家过滤器

AutocompleteFilter typeFilter = new AutocompleteFilter.Builder().setCountry("IN").build();

不适用于 google api 的新版本 自动完成支持片段。

xml 文件

fragment
            android:id="@+id/autocomplete_fragment"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:name="com.google.android.libraries.places.widget.AutocompleteSupportFragment"

java 文件

AutocompleteSupportFragment autocompleteFragment = (AutocompleteSupportFragment)
                getSupportFragmentManager().findFragmentById(R.id.autocomplete_fragment);

Refer the docs https://developers.google.com/places/android-sdk/client-migration

Places Autocomplete 实现可以使用 Intent builder 或 Fragment 来完成。

片段:

        AutocompleteSupportFragment autocompleteFragment = (AutocompleteSupportFragment)
                    getSupportFragmentManager().findFragmentById(R.id.autocomplete_fragment);
        autocompleteFragment.setCountry("IN");    //country type
        autocompleteFragment.setPlaceFields(Arrays.asList(Place.Field.ID, Place.Field.NAME)); 
       //to indicate the types of place data that you want to get.

IntentBuilder:

Intent intent = new Autocomplete.IntentBuilder(
                AutocompleteActivityMode.OVERLAY, fields)
                .setTypeFilter(TypeFilter.CITIES)
                .setCountry("IN")
                .build(this);
        startActivityForResult(intent, AUTOCOMPLETE_REQUEST_CODE);

使用这个:

autocompleteFragment.setCountry("IN"); 

没有意图的textView也很有用:

autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
   @Override public void onPlaceSelected(Place place) { 
   txtVw.setText(place.getName()+" >> "+place.getLatLng()); 
 } 
@Override public void onError(Status status) {
   txtVw.setText(status.toString()); 
  } 
 }
);