Android:从.java设置EditText的默认提示颜色

时间:2017-06-09 14:34:15

标签: android hint

所以我有一个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;
}

P.S。我用颜色制作了新颜色,称为hintcolor

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

1 个答案:

答案 0 :(得分:0)

可能为时已晚,但为了遇到同样问题的其他人,我通过制作默认 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;
}

我希望这会有所帮助。