是否可以获得android layout.xml文件中声明的小部件属性值?

是否可以获得android layout.xml文件中声明的小部件属性值?,android,android-layout,android-widget,android-resources,android-databinding,Android,Android Layout,Android Widget,Android Resources,Android Databinding,android应用程序中是否有方法检索layout.xml中声明的小部件的属性值 例如,在我的layout.xml文件中,我有: <CheckBox android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/clean_filesWithoutVideo" android:checked="@{uiprefs.switc

android应用程序中是否有方法检索
layout.xml
中声明的小部件的属性值

例如,在我的layout.xml文件中,我有:

<CheckBox
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:text="@string/clean_filesWithoutVideo"
     android:checked="@{uiprefs.switchButtonEditable}"
     android:id="@+id/checkbox_updateable" />

我想为
android:checked
检索literal值,例如我想在运行时检索
“@{uiprefs.switchButtonEditable}”

我从一个活动中使用
getResources()
搜索了
android.content.res.Resources
类,但没有成功:

  • 我无法将xml文件作为流获取
  • 通过
    Resources.getLayout()
    解析属性不会恢复属性值
也许这个值隐藏在
复选框
实例的某个地方,但我在调试时使用检查无法找到它


注意:我要检索的值尤其是数据绑定文本。也许我可以通过数据绑定API来检索它?

每个UI组件都有自己的getter和setter,通过它们,您可以检索当前设置的属性或设置您想要的属性。如果属性在视图中是通用的,例如高度/宽度,则getter将在视图类中可用。
在您的情况下,可以通过以下方式检查属性:

CheckBox checkbox =  (CheckBox) view.findViewById(R.id.checkbox_updateable);
boolean initialState = checkbox.isChecked();
在androidstudio中,您可以获得特定视图的可用方法。输入var名称(比如复选框),然后输入点(.),它将显示所有可用的方法。开始输入你认为你正在寻找的,它会显示所有相关的方法

更新

我想这就是你要找的。您可以这样做:

 XmlPullParser parser = resources.getXml(myResource);
 AttributeSet attributes = Xml.asAttributeSet(parser);
从文件:

这里返回的实现与在上使用实现不同 在通用XmlPullParser的顶部,通过检索进行了高度优化 编译时由aapt生成的预计算信息 您的资源。例如,getAttributeFloatValue(int,float) 方法返回先前存储在编译后的 资源,而不是在运行时解析 XML文件

此界面还提供其他信息 包含在已编译的XML资源中,但在 普通XML文件,例如返回 与特定XML属性关联的资源标识符 名字


感谢您回答cgr!但我的问题是:我想要得到声明的值(我可以在layout.xml中找到的值),例如:我想要得到“@{uiprefs.switchButtonEditable}”,而不是复选框的当前状态。我想我没有仔细阅读这个问题。对不起。起初我认为你做不到,但我不确定。我会试试看有没有办法让你知道的。我的错!我又读了一遍,觉得我的问题模棱两可。所以我编辑了它来澄清一下。谢谢你的帮助@我更新了答案。如果你还在找,试试这个。这应该行得通。