Android: Setting EditText's default hint color from .java

两盒软妹~` 提交于 2019-12-02 03:06:30

问题


So I have a LinearLayout and 4 EditText-s in it with grayish hint colors in XML. And I have button that dynamically adds new EditText-s to LinearLayout. The problem is when I use setHint("text") it makes hint color for new created views black.

Also tried setHintTextColor() but the only way it worked for me by setting custom color. Is there a default hint color that I can set by setHintTextColor()?? or maybe some method that does it when it's called?

Code looks like this:

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. I made new color in colors which is called hintcolor

I've been looking for solution, but there was nothing that would help me, or I just didn't understood it. I'm new at android and programming so don't judge please, just explain. Thanks a lot


回答1:


It may be too late but for the sake of others who have the same problem, I solved it by making a method to get default textColorHint.
It returns the color of the hint text for all the states (disabled, focussed, selected...) that specified in the current theme.

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;
}

I hope this helps.



来源:https://stackoverflow.com/questions/44460483/android-setting-edittexts-default-hint-color-from-java

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!