使用支持库更改操作栏中搜索提示的文本颜色

时间:2013-09-13 12:48:15

标签: android textview android-support-library android-appcompat

我想更改搜索视图提示的文本颜色,但我尝试了很多方面没有成功。 就像在这篇文章中一样: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)); 

3 个答案:

答案 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));

它对我有用。