gpt4 book ai didi

android - 在另一个 linearLayout 中插入一个 linearLayout

转载 作者:行者123 更新时间:2023-11-29 22:02:07 26 4
gpt4 key购买 nike

我试图在另一个 LinearLayout 中插入一个 LinearLayout。我不知道我的做法对不对。 我需要在不使用通货膨胀的情况下尝试这种方式

      LinearLayout address2;
address2 = new LinearLayout(this);
address2 = (LinearLayout)findViewById(R.id.sfsp2_layout);

LinearLayout teste3 = (LinearLayout)findViewById(R.id.se_contentAdressPostal);

LinearLayout teste4 = (LinearLayout)teste3.findViewWithTag("teste");
teste4.addView(address2);

LinearLayout teste3

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/se_contentAdressPostal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
android:background="@drawable/background_tile_address_postal"
android:orientation="vertical" >

<include
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
layout="@layout/socio_form_structured_postal" />

LinearLayout teste4

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/sfsp_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/background_tile"
android:orientation="vertical"
android:tag="teste" >

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/sfsp_layout_horizontal"
android:layout_width="wrap_content"
android:layout_height="49dp"
android:layout_gravity="right"
android:background="@drawable/background_tile"
android:orientation="horizontal"
android:tag="teste" >
<Button
android:id="@+id/sfsp_btStructuredPostal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginBottom="2dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="2dp"
android:hint="@string/sfsp_btStructuredPostal" /> .......

LinearLayour address2(我需要在layout4中插入的布局)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/sfsp2_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/background_tile"
android:orientation="vertical" >

<EditText
android:id="@+id/sfsp2_etStructuredPostalApartado"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
android:layout_marginLeft="65dp"
android:layout_marginRight="55dp"
android:layout_marginTop="2dp"
android:layout_weight="0.14"
android:ems="10"
android:hint="@string/sfsp2_etStructuredPostalApartado"
android:inputType="textMultiLine"
android:scrollHorizontally="false" >

LinearLayout“teste4”位于“teste3”内。我需要在“teste4”中插入 LinearLayout“address2”。你能告诉我我做错了什么吗?

最佳答案

我认为这里对 findViewById 的工作方式存在一些误解。我将在下面尝试解释。希望这有帮助,如果没有帮助请告诉我。

有两种可能的 findViewById() 可以使用。

  1. Activity.findViewById() : 这可用于在当前 Activity 的主要内容 View 中查找 View ——即使用 setContentView() 设置的 View .它不能用于任何其他目的。例如,它无法从任何其他布局文件中找到 View ——函数根本无法知道如何找到它。据我所知,这是您要使用的功能。如果您拥有的最后一个 XML 文件不是主布局,则行 address2 = (LinearLayout)findViewById(R.id.sfsp2_layout) 将失败。

  2. View.findViewById() :此函数可用于查找包含在其他 View 中的 View 。例如。如果你有包含 view2view1,并且 view2 有 ID some_id,那么你可以找到 view2 通过调用 view1.findViewById(R.id.some_id)。为了让它工作,view1 必须完全初始化。例如。如果 view1 的描述是在 XML 中,它必须先完全膨胀。

本质上,如果您想要使用在单独的 XML 文件中描述的 View ,您必须先对其进行扩充。我认为没有解决办法。

关于android - 在另一个 linearLayout 中插入一个 linearLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11652714/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com