在自定义视图构造函数中获取android:ellipsize属性的值

如何获得自定义View (扩展TextView )中的属性android:ellipsize的值?

我尝试了这些方法,但没有奏效:

 Log.d(TAG, attrs.getAttributeIntValue(ANDROID_NAMESPACE, "ellipsize", -1)); Log.d(TAG, attrs.getAttributeValue(ANDROID_NAMESPACE, "ellipsize")); Log.d(TAG, attrs.getAttributeUnsignedIntValue(ANDROID_NAMESPACE, "ellipsize", 111)); Log.d(TAG, attrs.getAttributeListValue(ANDROID_NAMESPACE, "ellipsize", new String[] {"x", "marquee"}, -1)); 

注意: attrsAttributeSet (构造函数参数), ANDROID_NAMESPACE"http://schemas.android.com/apk/res/android"

在这个例子中(Kotlin), getAttributeValue方法适用于我:

 import android.content.Context import android.util.AttributeSet import android.widget.TextView class Text(context: Context, attrs: AttributeSet) : TextView(context, attrs) { init { println("ellipsize: " + attrs.getAttributeValue( "http://schemas.android.com/apk/res/android", "ellipsize" ) ) } } 

它打印:

11-20 20:49:18.808 26804-26804/com.package.app I/System.out: ellipsize: 1

对于这个观点: