Android 使用自定义属性创建默认样式

Android 使用自定义属性创建默认样式,android,styles,themes,attr,Android,Styles,Themes,Attr,这就是我的问题:我创建了一个自定义组件,它扩展了按钮这个按钮有一个名为testAttr的属性 <declare-styleable name="TestButton" parent="@android:style/Widget.Button"> <attr name="testAttr" format="reference|color"/> </declare-styleable> 当然,我在清单中设定了主题: <uses-sdk an

这就是我的问题:我创建了一个自定义组件,它扩展了
按钮
这个按钮有一个名为
testAttr
的属性

<declare-styleable name="TestButton" parent="@android:style/Widget.Button">
    <attr name="testAttr" format="reference|color"/>
</declare-styleable>
当然,我在清单中设定了主题:

<uses-sdk
    android:minSdkVersion="7"
    android:targetSdkVersion="15" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/Theme.AppTheme" >

    <activity
        android:name=".TestActivity"
        android:label="@string/title_activity_main" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>


</application>



由于某些原因,它总是返回默认样式,并且从不设置android属性。我是不是遗漏了什么?

嗯,我应该在问问题之前看得更清楚些

找到解决方案:

替换为:

public myButton(final Context context, final AttributeSet attrs) {
    this(context, attrs, R.styleable.TestTheme_testStyle);
}
为此:

public myButton(final Context context, final AttributeSet attrs) {
    this(context, attrs, R.attr.testStyle);
}

我在做类似的事情!!!
<uses-sdk
    android:minSdkVersion="7"
    android:targetSdkVersion="15" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/Theme.AppTheme" >

    <activity
        android:name=".TestActivity"
        android:label="@string/title_activity_main" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>


</application>
public myButton(final Context context, final AttributeSet attrs) {
    this(context, attrs, R.styleable.TestTheme_testStyle);
}
public myButton(final Context context, final AttributeSet attrs) {
    this(context, attrs, R.attr.testStyle);
}