2017-01-28 9 views
2

Я использую Google Maps API v2 Android для своего проекта, в котором я использую API-интерфейс PlaceAutocomplete Prediction для получения предложений. Мой вопрос заключается в том, как сделать предложения более динамичными, то есть по мере того, как пользователь вводит данные, буквы в предложениях, соответствующих введенным данным, должны менять цвет, аналогичный Google Maps, как показано ниже (здесь буквы «n», «e» и 'ш' идти смелее предложения):Как добавить стиль в предсказания автозаполнения в API Google Maps для Android?

enter image description here

Я прочитал документацию one и two, в котором говорится:

getFullText(CharacterStyle matchStyle) возвращает полный текст описания места. Это сочетание первичного и вторичного текста. Пример: «Эйфелева башня, авеню Анатоль Франс, Париж, Франция». Кроме того, этот метод позволяет выделить разделы описания, соответствующие поисковому запросу, по вашему выбору, используя CharacterStyle. Параметр CharacterStyle не является обязательным. Установите для него значение null, если вам не нужна подсветка.

Но я не мог найти никаких дальнейших объяснений в документации о том, как реализовать CharacterStyle с getFullText(CharacterStyle), пожалуйста, помогите. Заранее спасибо!)

ответ

0
private static final CharacterStyle STYLE_BOLD = new StyleSpan(Typeface.BOLD); 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View row = super.getView(position, convertView, parent); 

// Sets the primary and secondary text for a row. 
// Note that getPrimaryText() and getSecondaryText() return a CharSequence that may contain 
// styling based on the given CharacterStyle. 

AutocompletePrediction item = getItem(position); 

TextView textView1 = (TextView) row.findViewById(android.R.id.text1); 
TextView textView2 = (TextView) row.findViewById(android.R.id.text2); 
textView1.setText(item.getPrimaryText(STYLE_BOLD)); 
textView2.setText(item.getSecondaryText(STYLE_BOLD)); 

return row; 

}