добавлю мое мнение о вещах, которые, вероятно, немного более эффективны и безопасны в разных версиях Android.
вы можете получить числовое значение идентификатора из имени идентификатора строки. используя инструмент Android hierarchyviewer
, вы можете найти строковые идентификаторы интересующих вас вещей, а затем просто использовать findViewById(...)
для их поиска.
код ниже устанавливает подсказку и цвет текста для самого поля редактирования. Вы можете применить тот же шаблон для других аспектов, которые вы хотите стилизовать.
private static synchronized int getSearchSrcTextId(View view) {
if (searchSrcTextId == -1) {
searchSrcTextId = getId(view, "android:id/search_src_text");
}
return searchSrcTextId;
}
private static int getId(View view, String name) {
return view.getContext().getResources().getIdentifier(name, null, null);
}
@TargetApi(11)
private void style(View view) {
ImageView iv;
AutoCompleteTextView actv = (AutoCompleteTextView) view.findViewById(getSearchSrcTextId(view));
if (actv != null) {
actv.setHint(getDecoratedHint(actv,
searchView.getContext().getResources().getString(R.string.titleApplicationSearchHint),
R.drawable.ic_ab_search));
actv.setTextColor(view.getContext().getResources().getColor(R.color.ab_text));
actv.setHintTextColor(view.getContext().getResources().getColor(R.color.hint_text));
}
}