📜  如何更改选择的占位符颜色 (1)

📅  最后修改于: 2023-12-03 14:53:08.798000             🧑  作者: Mango

如何更改选择的占位符颜色

在API Level 21中,EditText提供了一个setHintTextColor()方法,可以更改EditText的占位符颜色。但是,在API Level 26中,推出了一个名为setHintTextColor()的新方法,可以更改未选择EditText的占位符颜色,在选择EditText时,占位符的颜色将变为文本颜色。

代码示例

以下是如何使用新方法更改未选择EditText的占位符颜色的示例代码:

EditText editText = findViewById(R.id.edit_text);
int color = ContextCompat.getColor(this, R.color.hint_color); // 获取占位符颜色
editText.setHintTextColor(new ColorStateList(
        new int[][]{new int[]{android.R.attr.state_enabled}},
        new int[]{color}));

在上面的代码中,我们获取了定义为hint_color的颜色资源,然后将其用作EditText的占位符颜色。我们使用ColorStateList将颜色转换为适用于EditText占位符的通用状态列表,并在设置EditText的占位符颜色时使用它。

结论

在本文中,我们介绍了如何更改EditText占位符的颜色。我们展示了如何使用新的setHintTextColor()方法来更改未选择EditText的占位符颜色。请记住,这个方法在API Level 26及以上才被引入,如果您的应用程序需要向后兼容到旧的API级别,请使用API Level 21中的方法。