Android 以编程方式设置AppCompatBackgroundTint

Android 以编程方式设置AppCompatBackgroundTint,android,android-appcompat,Android,Android Appcompat,我有一个要设置背景色调的文本视图。我的应用程序的minSDK值为19,因此我将AppCompatTextView与app:backgroundTint参数一起使用,用于以声明方式设置色调。我想以编程方式更改色调,但在库组之外无法访问setSupportBackgroundTintList()方法。如何从活动中更改此值?来自androidx.appcompat.widget.AppCompateTextView的源代码: 这应该通过 ViewCompat\setBackgroundTintList

我有一个要设置背景色调的文本视图。我的应用程序的
minSDK
值为
19
,因此我将AppCompatTextView与
app:backgroundTint
参数一起使用,用于以声明方式设置色调。我想以编程方式更改色调,但在库组之外无法访问
setSupportBackgroundTintList()
方法。如何从活动中更改此值?

来自androidx.appcompat.widget.AppCompateTextView的源代码:

这应该通过

ViewCompat\setBackgroundTintList(android.view.view,ColorStateList)

所以,写下:

AppCompatTextView textView = findViewById(R.id.your_text_view)
ColorStateList colorStateList = ContextCompat.getColorStateList(this, R.color.your_state_list);
ViewCompat.setBackgroundTintList(textView, colorStateList);

从androidx.appcompat.widget.AppCompatTextView的源代码:

这应该通过

ViewCompat\setBackgroundTintList(android.view.view,ColorStateList)

所以,写下:

AppCompatTextView textView = findViewById(R.id.your_text_view)
ColorStateList colorStateList = ContextCompat.getColorStateList(this, R.color.your_state_list);
ViewCompat.setBackgroundTintList(textView, colorStateList);

我没有使用androidx(目前使用的是
android.support.v7.widget.AppCompatTextView
),它也没有用这些参数记录方法,但这是有效的!我看错文件了吗?嗯,不确定。我查找了这些类的旧
appcompat
版本的源代码,但在
AppCompatTextView
中找不到
setsupportbackgroundtinlist()
。也许网上提供的资料是错误的?等我有更多时间的时候,我会查阅文档的。但是这个解决方案有效,所以谢谢!我没有使用androidx(目前使用的是
android.support.v7.widget.AppCompatTextView
),它也没有用这些参数记录方法,但这是有效的!我看错文件了吗?嗯,不确定。我查找了这些类的旧
appcompat
版本的源代码,但在
AppCompatTextView
中找不到
setsupportbackgroundtinlist()
。也许网上提供的资料是错误的?等我有更多时间的时候,我会查阅文档的。但是这个解决方案有效,所以谢谢!