所以我有一个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和编程的新手,所以不要判断,请解释一下。非常感谢
答案 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;
}
我希望这会有所帮助。