Раздувание AutoCompleteSupportFragement в editText onClick - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь накачать AutoCompleteSupportFragment, использующий Google Places API, в событии onClick для editText.

Я хочу раздувать этот фрагмент при нажатии на editText, чтобы пользователь мог ввести местоположение, выбрать из предложенного фрагмента автозавершения, и имя местоположения будет показано в editText.

Я проверил эту ссылку здесь , но у меня она не сработала.

places_auto_complete_fragment.xml

    <?xml version="1.0" encoding="utf-8"?>
    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/place_autocomplete_fragment"
    android:name="com.google.android.libraries.places.widget.AutocompleteSupportFragment" />

как я пытаюсь надуть это

sourceEditText.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            LayoutInflater layoutInflater = getLayoutInflater();
            layoutInflater.inflate(R.layout.places_auto_complete_fragment,addTripLinearLayout,false);
        }
    });

Любая помощь приветствуется. Спасибо

Ответы [ 2 ]

1 голос
/ 15 мая 2019

Использовать Intent Builder вместо фрагмента в editText ....

инициализация при создании

   // Initialize Places.
   Places.initialize(getApplicationContext(), "***YOUR API KEY***");

   // Create a new Places client instance.
   PlacesClient placesClient = Places.createClient(this);

Затем используйте приведенный ниже код в тексте редактирования при событии щелчка ...

List<Place.Field> fields = Arrays.asList(Place.Field.ID, Place.Field.NAME);
// Start the autocomplete intent.
Intent intent = new Autocomplete.IntentBuilder(AutocompleteActivityMode.FULLSCREEN, fields).build(this);
startActivityForResult(intent, AUTOCOMPLETE_REQUEST_CODE);

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == AUTOCOMPLETE_REQUEST_CODE) {
        if (resultCode == RESULT_OK) {
            Place place = Autocomplete.getPlaceFromIntent(data);
            Log.i(TAG, "Place: " + place.getName() + ", " + place.getId());
        } else if (resultCode == AutocompleteActivity.RESULT_ERROR) {
            // TODO: Handle the error.
            Status status = Autocomplete.getStatusFromIntent(data);
            Log.i(TAG, status.getStatusMessage());
        } else if (resultCode == RESULT_CANCELED) {
            // The user canceled the operation.
        }
    }
}

Пожалуйста, обратитесь по ссылке ниже https://stackoverflow.com/a/55045772/10579969...

если вы используете только фрагмент, см. Код ниже

       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.
1 голос
/ 14 мая 2019
  1. AutocompleteSupportFragment представляет пользователю кнопку окна поиска, которая при щелчке мыши представляет пользовательский интерфейс окна поиска.
  2. Раздувание макета загружает пользовательский интерфейс, но для его создания необходимо добавить его в представление.видимый.
...