我想更改搜索视图提示的文本颜色,但我尝试了很多方面没有成功。 就像在这篇文章中一样:Changing action bar searchview hint text color
我正在使用Appcompat,支持动作栏库。
我尝试使用null指针返回:
AutoCompleteTextView searchText = (AutoCompleteTextView) searchView.findViewById(R.id.abs__search_src_text);
searchView.findViewById(R.id.abs__search_src_text);
searchText.setHintTextColor(getResources().getColor(R.color.white));
searchText.setTextColor(getResources().getColor(R.color.white));
答案 0 :(得分:19)
AutoCompleteTextView的ID错误,我想。除非您使用自定义操作栏搜索小部件。试试smth。如下:
((EditText)searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text))
.setHintTextColor(getResources().getColor(R.color.white));
答案 1 :(得分:3)
我也找到了答案here:
getMenuInflater().inflate(R.menu.menu_home, menu);
MenuItem searchItem = menu.findItem(R.id.item_search);
mSearchView = (SearchView) MenuItemCompat.getActionView(searchItem);
mSearchView.setOnQueryTextListener(this);
mSearchView.setQueryHint(getString(R.string.text));
SearchAutoComplete searchAutoComplete = (SearchAutoComplete) mSearchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
searchAutoComplete.setHintTextColor(mRes.getColor(android.R.color.white));
searchAutoComplete.setTextSize(14);
答案 2 :(得分:0)
使用以下代码:
getResources().getColor(R.color.white)
可能会出现提示getColor(int) is deprecated
的提醒。这是因为从api 23开始,在ContextCompat中添加了一个新的getColor()
方法。
所以请使用以下内容:
((EditText) searchView.findViewById (android.support.v7.appcompat.R.id.search_src_text))
.setHintTextColor (ContextCompat.getColor (getBaseContext(), Color.WHITE));
它对我有用。