2017-11-20 9 views
0

android:ellipsizeという属性の値をカスタムViewTextViewを拡張)に取得する方法はありますか?カスタムビューコンストラクタの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"です。

答えて

1

getAttributeValue方法は、この例(Kotlin)に私の作品:

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

を:

<com.package.app.Text 
     android:id="@+id/test" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:ellipsize="start" /> 
+0

感謝を。私の場合、それは 'ヌル'を返していた!私はその違いの理由を見つけました。スタイルの値を設定しました(要素のXMLタグには直接記述しません)。 –

関連する問題