gpt4 book ai didi

android - 从另一个 xml 获取 linearLayout Android

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:41:41 24 4
gpt4 key购买 nike

需要获取不在主 xml 文件(我在 setContentView() 中设置的那个)中的 LinearLayout。所以在写这段代码时:

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

LinearLayout main = (LinearLayout) findViewById(R.id.main1);

LinearLayout oggetto = (LinearLayout) findViewById(R.id.element1);

main.addView(oggetto);
}

element1写入的xml文件是:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/element1"
android:layout_width="fill_parent"
android:orientation="horizontal"
android:layout_height="90px"
android:background="#000000">

<LinearLayout
android:id="@+id/linearLayoutLeftBar"
android:layout_width="10px"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:background="#7FFF00" >
</LinearLayout>

<LinearLayout
android:id="@+id/linearLayoutRightContent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#EEEEEE" >

<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="45px"
android:orientation="horizontal"
android:background="#EEEEEE" >

<LinearLayout
android:id="@+id/linearLayoutTxtView1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#EEEEEE"
android:layout_gravity="right" >

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="TextBox1"
android:layout_marginLeft="5px"
android:textColor="#000000"
android:gravity="center" />

</LinearLayout>

<LinearLayout
android:id="@+id/linearLayoutImgView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="right|center" >

<ImageView
android:id="@+id/imageView1"
android:layout_width="16px"
android:layout_height="16px"
android:layout_marginRight="16px"
android:src="@drawable/ic_launcher"
android:background="#FF0000"/>

</LinearLayout>

</LinearLayout>

<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="fill_parent"
android:layout_height="45px"
android:orientation="horizontal"
android:background="#EEEEEE" >

<LinearLayout
android:id="@+id/linearLayoutTxtView1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#EEEEEE"
android:layout_gravity="right" >

<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="TextBox2"
android:layout_marginLeft="5px"
android:textColor="#000000"
android:gravity="center" />

</LinearLayout>

<LinearLayout
android:id="@+id/linearLayoutImgView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="right|center" >

<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginRight="16px"
android:text="TextBox3"
android:textColor="#000000"
android:gravity="center|right" />

</LinearLayout>

</LinearLayout>

</LinearLayout>
</LinearLayout>

问题是我在启动应用程序时遇到错误:无法启动 Activity ComponentInfo{com.chiamata/com.chiamata.ChiamataActivity}: java.lang.NullPointerException这是因为 element1 为空。如果我把 if(element1 != null) 添加到主 Linearlayout 之前,一切正常,但显然没有添加 element1。我需要以编程方式添加它,所以我不能将所有内容都放在一个 xml 文件中。我能怎么做?谢谢,马蒂亚

最佳答案

如果我正确理解你的问题,你可以使用

LayoutInflater inflater;
inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

LinearLayout layout = (LinearLayout) inflater.inflate(R.layout.Your_layout_file_with_element1 , null);

然后你可以使用main.addView(layout);来添加外部布局。

关于android - 从另一个 xml 获取 linearLayout Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10226740/

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