gpt4 book ai didi

android - findViewById 在 d View 内的 LinearLayout 上返回 null

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:49:15 25 4
gpt4 key购买 nike

我无法找出这里的错误。我可能正在寻找一些东西......

布局 XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/listLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff"
android:orientation="vertical" >

<include
android:id="@+id/headerInclude"
android:layout_width="fill_parent"
android:layout_height="38dp"
android:layout_gravity="top"
layout="@layout/header" />

<LinearLayout
android:id="@+id/actualView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
android:layout_weight="1" >

<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:divider="@drawable/dotted_line"
android:dividerHeight="2dp"
android:drawSelectorOnTop="false"
android:paddingBottom="10dp"
android:paddingTop="10dp" />
</LinearLayout>

<include
android:layout_width="fill_parent"
android:layout_height="35dp"
android:layout_gravity="bottom"
layout="@layout/footer" />

</LinearLayout>

包含 header XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/headerLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/header_bgr"
android:orientation="horizontal"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingTop="7dp" >

<TextView
android:id="@+id/tvScreenTitle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.8"
android:ellipsize="end"
android:gravity="center|left"
android:singleLine="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#ffffff"
android:textSize="17sp"
android:textStyle="bold" />

<TextView
android:id="@+id/tvScreenSubTitle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.2"
android:gravity="center|right"
android:text=""
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#ffffff"
android:textSize="15sp"
android:textStyle="bold" />

</LinearLayout>

列出 Activity java代码:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
appData = ((DxApp) this.getApplicationContext()).getData();
setContentView(R.layout.list);
setTitle("Some Title...");
// some more code...
addButtons();
}

protected void addButtons() {
LinearLayout headerLayout = (LinearLayout) findViewById(R.id.headerLayout);
Button btn = new Button(this);
btn.setText("Go to My Sets");
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
// do some thing here...
}
});

if (headerLayout != null)
headerLayout.addView(btn);
}

@Override
public void setTitle(CharSequence title) {
TextView tvTitle = (TextView) findViewById(R.id.tvScreenTitle);
tvTitle.setText(title);
}

如果我删除检查 if(headerLayout != null),我会在 headerLayout.addView(btn) 上得到 null 指针异常。
我能够在函数 setTitle 中获取 TextView 但有些方法无法获取 LinearLayout

谁能帮我找出代码有什么问题...

最佳答案

如果您为 include 元素设置了 id 属性,那么这将是展开布局根的 ID。因此,与其查找 ID 为 headerLayoutLinearLayout,不如查找 ID 为 headerInclude(或者不为 设置 id >包括元素)。

关于android - findViewById 在 <include>d View 内的 LinearLayout 上返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15454206/

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