【问题标题】:Assigning text color to text in EditText为 EditText 中的文本分配文本颜色
【发布时间】:2012-05-01 19:20:05
【问题描述】:

如何通过扩展 EditText 为文本指定不同的颜色?

【问题讨论】:

  • 请Chaitanya,在这里发布问题之前做一些研究..

标签: android android-widget


【解决方案1】:

您可以通过添加android:textColor 来更改文本颜色,如下所示:

<EditText
    android:id="@+id/editText1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textColor="#f00" />

【讨论】:

    【解决方案2】:

    使用跨度:

    TextView textView = (TextView)findViewById(R.id.mytextview01);
    Spannable WordtoSpan = new SpannableString("partial colored text");        
    WordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 2, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    textView.setText(WordtoSpan);
    

    【讨论】:

    • setText 是否缺少参数?我认为它还需要BufferType
    【解决方案3】:

    我知道这是一个非常古老的问题,但由于这是我在搜索时遇到的第一个问题,所以我想添加一个答案,以便未来的读者得到它们。

    我们可以在styles.xml文件中创建我们自己的自定义样式,除了textColor之外还有许多其他属性,并应用于我们的EditText。

    在styles.xml中添加这个,

    <style name="MyEditTextstyle">
        <item name="android:textColor">@color/dark_blue</item>
        <item name="android:background">@drawable/my_custom_edittext_bg</item>
        <item name="android:layout_marginTop">5dp</item>
        <item name="android:layout_marginBottom">5dp</item>
        //many more per requirement
    </style>
    

    然后简单地将这种样式应用到 EditText 上,

    <EditText
        style="@style/MyEditTextstyle" //here
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:hint="Item Name"
        android:padding="10dp" >
        <requestFocus />
    </EditText>
    

    简单,对。 :) 重要的是,如果需要,我们可以将相同的东西应用到更多的 EditText 上。 :)

    【讨论】:

      【解决方案4】:

      我在 style.xml 文件中使用 textColor 属性时遇到问题:

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

      对我来说 editTextColor 有效:

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

      【讨论】:

        【解决方案5】:

        要以编程方式更改它,请在您的 colors.xml 文件中添加颜色

        colors.xml:

        <resources>
            <color name="colorText">#424242</color>
        

        并像这样引用它:

        myEditText.setTextColor(ContextCompat.getColor(this, R.color.colorText));
        

        【讨论】:

          【解决方案6】:

          来自 XML 布局:

          我们可以通过添加android:textColor来改变EditText的文字颜色,如下所示:

          <EditText
              android:id="@+id/myEditText"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:hint="Your Name"
              android:textColor="#FF0000"
          </EditText>
          

          来自 Java 类:

          我们可以通过添加方法EditText.setTextColor()来实用地更改EditText文本颜色,如下所示:

          EditText myEditText = (EditText)findViewById(R.id.myEditText);
          myEditText.setTextColor(Color.RED);
          

          【讨论】:

            【解决方案7】:

            android:textColor,在 EditText xml 中设置这个属性。

            【讨论】:

              【解决方案8】:
              <EditText
                android:layout_width="what_ever_size"
                android:layout_height="what_ever_size"
                android:textColor="@color/your_choice_of_color" />
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2014-09-26
                • 2021-03-28
                • 1970-01-01
                相关资源
                最近更新 更多