我在我的项目中使用googlemapsapiv2android,其中使用placeautocomplete predictions api获取建议。我的问题是如何使建议看起来更具动态性,即当用户键入时,建议中与所提供的输入匹配的字母应改变颜色,类似于谷歌地图,如下所示(建议中的字母“n”、“e”和“w”变为粗体):
我已经阅读了one和two文档,其中说明:getFullText(CharacterStyle matchStyle)
返回位置描述的全文。这是主文本和次文本的组合。例如:“法国巴黎阿纳托利大街埃菲尔铁塔”。此外,此方法允许您使用CharacterStyle
突出显示描述中与您选择的样式匹配的部分。characterStyle参数是可选的。如果不需要任何突出显示,请将其设置为空。
但我在文档中找不到关于如何使用CharacterStyle
实现getFullText(CharacterStyle)
的进一步解释,请帮助。提前谢谢!:)
最佳答案
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;
}