如何在 Android 中以编程方式更改 EditText 样式?

How can I change the EditText style programatically in Android?

您好,我有一个带有表单的视图,所有按钮、标签、EditText 等都在样式文件中定义,例如 EditText 我有 app_edit_textapp_edit_text_error ,我的问题是如何将 EditText 中的样式从 app_edit_text 更改为 app_edit_text_error?.

谢谢!

老实说,您无法通过编程方式更改样式。您只能更改文本 使用 setTextAppearance(int resId) 方法的外观: https://developer.android.com/reference/android/widget/TextView#setTextAppearance(int)

为了您的目的,您可以使用 EditText 的 setError(String error) 方法或实现自我状态并在 EditText 子类中处理它。这是关于自定义状态的好 post:How to add a custom button state

您不能以编程方式更改样式。您可以用新实例替换它们(您只能在构造函数中指定样式),或者您可以将它与新主题一起使用,因为主题可以通过编程方式更改。 Themes