Мне нужно сделать действие, которое позволяет пользователю нажимать кнопку getLocation, которая, в свою очередь, возвращает список мест в соответствии с оценкой вероятности. ответ от FindCurrentPlaceResponse возвращает 20 элементов, которые я хотел бы, чтобы они были в виде списка или карточек, из которых пользователь, наконец, выбирает наиболее подходящее место. Как заставить ответ возвращать отдельные места, которые можно поместить в интерактивный список?
Я следовал и полностью использовал документы Google Places по адресу https://github.com/googlemaps/android-places-демо для своей деятельности.
это точный код из документов, где список преобразуется в одну строку
@RequiresPermission(allOf = {ACCESS_FINE_LOCATION, ACCESS_WIFI_STATE})
private void findCurrentPlaceWithPermissions() {
setLoading(true);
FindCurrentPlaceRequest currentPlaceRequest = FindCurrentPlaceRequest.newInstance(getPlaceFields());
Task<FindCurrentPlaceResponse> currentPlaceTask = placesClient.findCurrentPlace(currentPlaceRequest);
currentPlaceTask.addOnSuccessListener(
(response) ->
responseView.setText(StringUtil.stringify(response, isDisplayRawResultsChecked())));
currentPlaceTask.addOnFailureListener(
(exception) -> {
exception.printStackTrace();
responseView.setText(exception.getMessage());
});
currentPlaceTask.addOnCompleteListener(task -> setLoading(false));
}
да. он возвращает 20, но все результаты объединяются в одну строку, отображаемую в текстовом представлении. что мне нужно, так это получить отдельные места, которые можно извлечь по отдельности
Stringify делает это. Сам ответ уже является «ответами». Вам может понадобиться интерфейс с обратным вызовом для добавления результатов в список плиток.
// The callback interface
interface MyCallback {
void callbackCall(List<String> response);
}
// The class that takes the callback
class Worker {
MyCallback callback;
void onEvent(List<String> response) {
callback.callbackCall(response);
}
}
// Option 1: MainActivity or where the list is
class Callback implements MyCallback {
void callbackCall() {
// callback code goes here
// update your adaptor
}
}
worker.callback = new Callback();
// Option 2:
worker.callback = new MyCallback() {
void callbackCall(List<String> results ) {
// callback code goes here
}
};
Спасибо. Я проверил stringify, и он фактически получает «ответы» на одну длинную строку. Любая ссылка или образец такого интерфейса были бы очень полезны.
Я не понимаю, он уже возвращает 20, что он считает правдоподобным; это то, что вы хотите в списке?