我在我的项目中使用googlemapsapiv2android,其中使用placeautocomplete predictions api获取建议。我的问题是如何使建议看起来更具动态性,即当用户键入时,建议中与所提供的输入匹配的字母应改变颜色,类似于谷歌地图,如下所示(建议中的字母“n”、“e”和“w”变为粗体):
android - 如何在Android版Google Maps API中为自动完成预测添加样式?-LMLPHP
我已经阅读了onetwo文档,其中说明:
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;

}

09-19 05:20