【问题标题】:Android: Setting EditText's default hint color from .javaAndroid:从 .java 设置 EditText 的默认提示颜色
【发布时间】:2017-11-11 15:07:51
【问题描述】:

所以我有一个 LinearLayout 和 4 个 EditText-s,在 XML 中带有灰色提示颜色。我有一个按钮,可以动态地将新的 EditText-s 添加到 LinearLayout。问题是当我使用 setHint("text") 时,它会使新创建的视图的提示颜色变黑。

还尝试了 setHintTextColor() ,但它是通过设置自定义颜色对我有用的唯一方法。我可以通过 setHintTextColor() 设置默认提示颜色吗?或者当它被调用时可能有一些方法?

代码如下:

private EditText createNewTextView(String text) {
    ++x;
    final ActionBar.LayoutParams lparams = new ActionBar.LayoutParams(ActionBar.LayoutParams.WRAP_CONTENT, ActionBar.LayoutParams.WRAP_CONTENT);
    final EditText editText = new EditText(this);
    editText.setLayoutParams(lparams);
    editText.setHint("Name" + x);
    editText.setHintTextColor(getResources().getColor(R.color.hintcolor));
    return editText;
}

附言我在颜色中制作了新的颜色,称为hintcolor

我一直在寻找解决方案,但没有什么可以帮助我,或者我只是不明白。我是android和编程的新手,所以请不要评判,只是解释一下。非常感谢

【问题讨论】:

  • stackoverflow.com/questions/6438478/…你看过这篇文章了吗?
  • 试过了,但它说无法解析“白色”,也许将它添加到颜色会有所帮助,但我仍然需要正确的颜色代码

标签: android hint


【解决方案1】:

可能为时已晚,但为了其他有同样问题的人,我通过制作一个获取默认 textColorHint 的方法来解决它。
它返回提示文本的颜色对于当前主题中指定的所有状态(禁用、聚焦、选择...)。

int getHintTextColor(Context context) {
    int[] hintTextColor = new int[] { android.R.attr.textColorHint };
    int indexOfAttrTextColorHint = 0;
    TypedArray ta = context.obtainStyledAttributes(hintTextColor);
    int textColor = ta.getColor(indexOfAttrTextColorHint, 0xFF808080);
    ta.recycle();
    return textColor;
}

我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-09
    • 2014-04-24
    • 2016-04-28
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多