4

我想更改搜索视图提示的文本颜色,但我尝试了很多方法都没有成功。就像在这篇文章中一样:更改操作栏搜索视图提示文本颜色

我正在使用 Appcompat,支持动作栏库。

我用空指针返回尝试了这个:

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)); 
4

3 回答 3

20

我猜 AutoCompleteTextView 的 id 错误。除非您使用自定义操作栏搜索小部件。试试看。如下所示:

((EditText)searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text))
            .setHintTextColor(getResources().getColor(R.color.white));
于 2013-09-15T13:45:08.947 回答
3

我也在这里找到了答案:

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);
于 2013-09-15T13:53:44.830 回答
0

使用以下代码:

getResources().getColor(R.color.white)

可能会出现这样的警报getColor(int) is deprecated。这是因为从 api 23 开始,getColor()向 ContextCompat 添加了一个新方法。

所以只需使用以下内容:

((EditText) searchView.findViewById (android.support.v7.appcompat.R.id.search_src_text))
                     .setHintTextColor (ContextCompat.getColor (getBaseContext(), Color.WHITE));

它对我有用。

于 2017-08-31T09:20:32.610 回答