Google недавно обновил свой Places SDK для Android, поэтому теперь я тоже обновляю свой код.Я пытаюсь использовать AutocompleteSupportFragment
, чтобы позволить пользователю установить свой адрес.
Это мой код:
mAddressEditText = (AutocompleteSupportFragment) getSupportFragmentManager().findFragmentById(R.id.address);
mAddressEditText.setPlaceFields(Arrays.asList(Place.Field.ADDRESS, Place.Field.LAT_LNG));
mAddressEditText.setHint("Address");
mAddressEditText.setText("Test1"); // Works fine at the beginning, disappears after selecting a place and shows only the hint
mAddressEditText.setOnPlaceSelectedListener(new PlaceSelectionListener() {
@Override
public void onPlaceSelected(Place place) {
Log.d(TAG, "Place Selected");
// Other Stuff
mAddressEditText.setText("Test2"); // Doesn't Work, all I can see is the hint
mAddressEditText.setText(place.getAddress()); // Doesn't Work, all I can see is the hint
}
@Override
public void onError(Status status) {
Log.e(TAG, "An error occurred: " + status);
invalidAddressDialog.show();
}
});
В предыдущем SDK фрагмент установил бы текстна выбранный адрес автоматически.Это не работает в новом SDK (не уверен, намеренно это или нет).Поэтому я пытаюсь установить его вручную.Как вы можете видеть в комментариях в моем коде, использование setText
отлично работает вне слушателей.Внутри слушателя это не так.
Я что-то не так делаю или это ошибка?
РЕДАКТИРОВАТЬ: Так долго, и я до сих пор не могу найти правильное решение этой проблемы.Чтобы быть совершенно ясным, я могу получить адрес правильно из фрагмента, единственное, что не работает, это setText
.
Однако, поскольку некоторые ответы утверждают, что они не получают ту же проблему, яначал думать, что это может быть связано с версиями библиотек, которые я использую?
Это библиотеки, которые у меня есть в build.gradle
:
api 'com.android.support:appcompat-v7:28.0.0'
api 'com.android.support:support-annotations:28.0.0'
api 'com.android.support:multidex:1.0.3'
api 'com.google.firebase:firebase-core:16.0.8'
api 'com.google.firebase:firebase-auth:16.2.1'
api 'com.google.firebase:firebase-firestore:18.2.0'
api 'com.google.firebase:firebase-storage:16.1.0'
api 'com.google.android.libraries.places:places:1.1.0'