我想将文本颜色和提示文本颜色设置为android.support.v7.widget.SearchView中的文本,该文本不在ActionBar中而不在Menu选项中。我尝试了stackoverflow中提到的几种方法。但是他们都没有工作。
int searchSrcTextId =getResources().getIdentifier("android:id/search_src_text", null, null);
EditText searchEditText = (EditText) searchView.findViewById(searchSrcTextId);
searchEditText.setTextColor(Color.WHITE);
searchEditText.setHintTextColor(Color.LTGRAY);
我尝试了上面的代码,但它在setTextColor行给出了Null指针异常。任何一种帮助都会受到赞赏。谢谢。
答案 0 :(得分:7)
我会通过xml布局文件完成这项工作。这可以在res / layout文件夹中找到。
您需要执行类似以下操作:
将其添加到父主题。
<item name="android:editTextColor">@android:color/white</item>
这应该改变输入的文本。
您也可以使用以下内容:
<item name="android:textColorHint">@android:color/white</item>
它将更改SearchView的提示文本。
希望这会有所帮助:)
答案 1 :(得分:1)
对于我的问题,我还有一个解决方案。在我的问题中以编程方式更改textcolor我给出的id是错误的。我们应该为android.support.v7.widget.SearchView编辑如下代码。
EditText editText = ((EditText) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text));
editText.setHintTextColor(getResources().getColor(R.color.white));
editText.setTextColor(getResources().getColor(R.color.white));
答案 2 :(得分:1)
对于androidx:
EditText searchEditText = (EditText) search_view_home.findViewById(androidx.appcompat.R.id.search_src_text);
searchEditText.setTextColor(getResources().getColor(R.color.white));
searchEditText.setHintTextColor(getResources().getColor(R.color.white));