Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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
如何在java中获取android小部件的属性值?_Android_User Interface_Attributes_Get - Fatal编程技术网

如何在java中获取android小部件的属性值?

如何在java中获取android小部件的属性值?,android,user-interface,attributes,get,Android,User Interface,Attributes,Get,我已经扩展了Android的Button类,我想通过java代码访问XML文件中设置的一些属性值,例如填充、重力。让我知道如何实现这一点…在构造函数中,您可以使用xml访问属性,但其中一些属性是私有的,无法通过sdk访问。还可以看看源代码,尤其是从@311行开始的构造函数 以下是您可以做到的方法。 这确实不是世界上最漂亮的东西,但它应该起作用 public class TestLayout extends LinearLayout { private static final

我已经扩展了Android的Button类,我想通过java代码访问XML文件中设置的一些属性值,例如填充、重力。让我知道如何实现这一点…

在构造函数中,您可以使用xml访问属性,但其中一些属性是私有的,无法通过sdk访问。还可以看看源代码,尤其是从@311行开始的构造函数

以下是您可以做到的方法。 这确实不是世界上最漂亮的东西,但它应该起作用

 public class TestLayout extends LinearLayout {
        private static final String ANDROID_NAMESPACE = "http://schemas.android.com/apk/res/android";

        // XXX: This is defined in
        // com.android.interal.R.styleable.LinearLayout_*** but are not accessible
        // in the SDK :(
        private static final String ORIENTATION_ATTRIBUTE = "orientation";

        public SignUpHeaderLayout(Context context, AttributeSet attrs) {
            super(context, attrs);
            initialize(attrs);
        }

        private void initialize(AttributeSet attrs) {
            if (!isSet(attrs, ORIENTATION_ATTRIBUTE)) {
                setOrientation(LinearLayout.VERTICAL);
            }
        }

        private boolean isSet(AttributeSet attrs, String attribute) {
            return attrs.getAttributeIntValue(ANDROID_NAMESPACE, attribute, -1) != -1;
        }

    }