【问题标题】:Set text color and hint text color to the text in SearchView将文本颜色和提示文本颜色设置为 SearchView 中的文本
【发布时间】:2016-08-19 09:58:00
【问题描述】:

我想将文本颜色和提示文本颜色设置为 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 指针异常。任何帮助将不胜感激。提前致谢。

【问题讨论】:

    标签: android


    【解决方案1】:

    我会通过 xml 布局文件来完成这种工作。这可以在 res/layout 文件夹中找到。

    您需要执行类似于以下的操作:

    将此添加到父主题。

    <item name="android:editTextColor">@android:color/white</item>
    

    这应该会改变输入的文本。

    你也可以这样使用:

    <item name="android:textColorHint">@android:color/white</item>
    

    它将更改 SearchView 的提示文本。

    希望这会有所帮助:)

    【讨论】:

    • 非常感谢您最早的回复。这对我有用。简单而简短的解决方案。非常感谢:)
    • 我有一个疑问。这会改变我项目中所有 EditText 或 SearchView 的颜色吗?
    • 当我们将这些项目添加到主父主题时,它会改变应用程序中所有 SearchView 的文本颜色。?
    【解决方案2】:

    对于我的问题,我还有一个解决方案。在我的问题中以编程方式更改 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));
    

    【讨论】:

      【解决方案3】:

      对于 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));
      

      【讨论】:

        【解决方案4】:

        在工具栏上使用它。

            <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@color/toolbarColor"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            app:contentInsetStartWithNavigation="0dp"
            app:layout_behavior="@string/appbar_scrolling_view_behavior"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            app:navigationIcon="@drawable/ic_arrow_back"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
            app:title="Toolbar"
            app:titleTextColor="@color/toolbarTextColor"/>
        

        并将其粘贴到 style.xml 或 theme.xml

            <style name="ThemeOverlay.AppCompat.Dark.ActionBar" parent="Base.ThemeOverlay.AppCompat.Dark.ActionBar"/>
        <style name="ThemeOverlay.AppCompat.Light" parent="Base.ThemeOverlay.AppCompat.Light"/>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-08-18
          • 2021-08-20
          • 2017-09-04
          • 1970-01-01
          • 2021-11-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多