4

我想更改 ActionBarSherlock 中文本的颜色SearchView,所以我在 StackOverflow 上找到了这个:

AutoCompleteTextView searchText = (AutoCompleteTextView) searchView.findViewById(R.id.abs__search_src_text);
searchText.setHintTextColor(getResources().getColor(R.color.white));
searchText.setTextColor(getResources().getColor(R.color.white));    

但问题是它searchText始终为空。我也尝试过search_src_text(no abs__) - 再次searchTextnull.

我将 Sherlock 用于我的 ActionBar(具有操作栏的自定义视图),但我也希望更改搜索视图的文本颜色。

有什么我不明白的吗?

4

2 回答 2

7

更改和应用您的样式如下:

  1. 覆盖SearchViewStyle定义相关样式。

    <style name="SearchViewStyle" 
           parent="Widget.Sherlock.Light.SearchAutoCompleteTextView">
        <item name="android:textColor">myTextColor</item>
    </style>
    
  2. 将此样式定义添加到您的应用主题。

    <style name="CustomTheme" parent="Theme.Sherlock.Light">
        ...
        <item name="searchAutoCompleteTextView">@style/SearchViewStyle</item>
        ...
    </style>
    
  3. android:theme="CustomTheme"在您的清单 ( )中应用此主题。

希望这会有所帮助......干杯!

psSearchViewStyle在 ABS 样式定义(XML 文件)中搜索。这样,您可以使用 Ctrl+单击定义来跟踪可用样式。

于 2013-06-04T17:23:46.907 回答
0

其他方式,为我工作

@Override
public boolean onCreateOptionsMenu(Menu menu) {
        searchView = new SearchView(getSupportActionBar().getThemedContext());

        AutoCompleteTextView searchText = (AutoCompleteTextView) searchView.findViewById(R.id.abs__search_src_text);
        searchText.setTextColor(Color.BLACK); 
.....................
}
于 2014-12-29T07:24:33.023 回答