Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何为自定义UI类设置默认参数?_Android_Declare Styleable - Fatal编程技术网

Android 如何为自定义UI类设置默认参数?

Android 如何为自定义UI类设置默认参数?,android,declare-styleable,Android,Declare Styleable,我创建了一个名为RoundedButton的自定义类,它扩展了Button。我想分配一些默认参数。怎么办 在我实现了下面的xml代码之后,没有任何变化。基本上,默认情况下没有添加样式。我不知道我错过了什么 在styles.xml中 <resources> <style name="AppTheme" parent="@android:style/Theme.Light"> <item name="RoundedButtonStyle">@style/C

我创建了一个名为RoundedButton的自定义类,它扩展了Button。我想分配一些默认参数。怎么办

在我实现了下面的xml代码之后,没有任何变化。基本上,默认情况下没有添加样式。我不知道我错过了什么

在styles.xml中

<resources>
<style name="AppTheme" parent="@android:style/Theme.Light">
    <item name="RoundedButtonStyle">@style/CustomView</item>
</style>

<style name="CustomView">
    <item name="android:clickable">true</item>
    <item name="android:focusable">true</item>
    <item name="android:focusableInTouchMode">true</item>
    <item name="android:colorBackground">@color/transparent</item>
    <item name="android:textColor">@color/blue</item>
    <item name="android:windowBackground">@color/transparent</item>
    <item name="android:background">@drawable/button_border</item>
    <item name="android:gravity">center</item>
</style>
</resources>
RoundButton.java

public RoundedButton(Context context) {
    super(context);
    ctx = context;
}

public RoundedButton(Context context, AttributeSet attrs) {
    super(context, attrs, R.attr.RoundedButtonStyle);
    ctx = context;
    TypedArray attrsArray = context.obtainStyledAttributes(attrs, R.styleable.RoundedButtonAttrs, 0, 0);
    initAttributesArray(attrsArray);
    attrsArray.recycle();

    initializeRoundedButton();
}
我用和来解决这个问题


编辑:之前我有一个问题,背景是浅灰色的,没有改变,我发现这个问题是因为我后来在UI类中有一行代码

当你尝试你发现的d建议时发生了什么?这是什么意思?请编辑您的问题以提供更多详细信息。已编辑问题
android:theme="@style/AppTheme"
public RoundedButton(Context context) {
    super(context);
    ctx = context;
}

public RoundedButton(Context context, AttributeSet attrs) {
    super(context, attrs, R.attr.RoundedButtonStyle);
    ctx = context;
    TypedArray attrsArray = context.obtainStyledAttributes(attrs, R.styleable.RoundedButtonAttrs, 0, 0);
    initAttributesArray(attrsArray);
    attrsArray.recycle();

    initializeRoundedButton();
}