1

カスタムLayoutInflater.Factoryを作成しており、onCreateView()メソッドで、現在のビューに指定されたカスタム属性を取得したいと思います。ただし、この属性に対してスタイル設定可能であると宣言したくありません。このビューのxml属性で指定されている場合、このパラメーターを取得できます。 attrs.getAttributeValue(null, attributeName);
ビューのスタイルパラメーターで指定されている場合でも取得できます。 context.obtainStyledAttributes(attrs, new int[]{R.attr.custom_attribute);
ただし、テーマで指定されている場合、この属性を取得することは不可能のようです。どんな助けでもいただければ幸いです。

これが私のxmlリソースです:

<style name="CustomTheme"
       parent="android:Theme.DeviceDefault">
     <item name="android:textViewStyle">@style/TextView.Custom</item>
</style>

<style name="TextView.Custom">
    <item name="custom_attribute">"blabla"</item>
</style>

PSカスタム属性のslyleableリソースを宣言する必要があることはわかっています。そうすれば機能しますが、この方法を使用する方が簡単なので、そうでない場合は不可能であることを確認したいと思います。

4

1 に答える 1

1

あなたはこれを使ってそれを得ることができることがわかりました:

TypedValue value = new TypedValue();
theme.resolveAttribute(android.R.attr.textViewStyle, value, true);
typedArray = theme.obtainStyledAttributes(value.resourceId, new int[] {R.attr.custom_attribute});
于 2013-01-15T13:17:43.543 に答える