在自定义视图构造函数中获取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的财产代表
  • 在Kotlin中获得线程安全属性的最简单方法是什么?
  • Kotlin抽象受保护的财产
  • Kotlin - 如何使用自定义名称制作地图代理?
  • 为什么一些Java的setter方法自动成为Kotlin的属性,但有一些不是?
  • 包含generics的Kotlin函数的内联别名?
  • One Solution collect form web for “在自定义视图构造函数中获取android:ellipsize属性的值”

    在这个例子中(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

    对于这个观点:

      
    Kotlin language will be the best programming language for Android.