Android 如何以编程方式从XML中获取值?-安卓

Android 如何以编程方式从XML中获取值?-安卓,android,xml,Android,Xml,首先,我做了研究,但没有找到 我知道这似乎是一个微不足道的问题,但如何准确地从XML文件(在我的例子中是布局XML)检索值呢 这是我的密码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:paddin

首先,我做了研究,但没有找到

我知道这似乎是一个微不足道的问题,但如何准确地从XML文件(在我的例子中是布局XML)检索值呢

这是我的密码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:padding="2dp"
    android:layout_width="50dp"
    android:layout_height="50dp">

</LinearLayout>

在上面的例子中,我想得到“padding”的值。我该怎么做?这可能吗?

您不能“从XML获取值”。相反,您可以从XML膨胀视图,然后可以查询视图的状态,它的状态将是XML中声明的状态

就你而言:

首先,您需要为视图提供一个id,以便可以在代码中引用它

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/id_for_this_view_here"
    android:orientation="horizontal"
    android:padding="2dp"
    android:layout_width="50dp"
    android:layout_height="50dp">

</LinearLayout>
希望有帮助

您不能“从XML获取值”。相反,您可以从XML膨胀视图,然后可以查询视图的状态,它的状态将是XML中声明的状态

就你而言:

首先,您需要为视图提供一个id,以便可以在代码中引用它

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/id_for_this_view_here"
    android:orientation="horizontal"
    android:padding="2dp"
    android:layout_width="50dp"
    android:layout_height="50dp">

</LinearLayout>
希望有帮助

以编程方式获取其自己的属性:

获取其与布局容器的相对位置:

例如,线性布局位于约束布局中:

ConstraintLayout.LayoutParams layoutParams = (ConstraintLayout.LayoutParams) linearLayout.getLayoutParams();
int t = layoutParams.topMargin;
int b = layoutParams.leftMargin;
//...
以编程方式获取其自己的属性:

获取其与布局容器的相对位置:

例如,线性布局位于约束布局中:

ConstraintLayout.LayoutParams layoutParams = (ConstraintLayout.LayoutParams) linearLayout.getLayoutParams();
int t = layoutParams.topMargin;
int b = layoutParams.leftMargin;
//...
ConstraintLayout.LayoutParams layoutParams = (ConstraintLayout.LayoutParams) linearLayout.getLayoutParams();
int t = layoutParams.topMargin;
int b = layoutParams.leftMargin;
//...