gpt4 book ai didi

android - 为什么以编程方式添加我的 TextView 时出现 NullPointerException?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:58 27 4
gpt4 key购买 nike

我在我的 Activity 中以编程方式创建了一个线性布局,如下所示:

LinearLayout myContent = new LinearLayout(this);
myContent.setOrientation(LinearLayout.VERTICAL);

然后,我在 xml 中定义了一个 TextView (在 res/layout/下),如下所示:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/name_text"
android:layout_width="80dp"
android:layout_height="40dp"
android:gravity="center"
/>

之后,我想以编程方式将上面定义的几个 TextView 添加到 myContent 线性布局,如下所示:

//my content is a linear layout
LinearLayout myContent = new LinearLayout(this);
myContent.setOrientation(LinearLayout.VERTICAL);

for(int i=0; i<10; i++){
//get my text view resource
TextView nameField = (TextView)findViewById(R.id.name_text);


nameField.setText("name: "+Integer.toString(i)); //NullPointerException here
}

myContent.addView();

我认为上面的代码应该将 10 个带有名称的 TextView 添加到 myContent 线性布局中。但是我最终在 nameField.setText(...); 处遇到了 NullPointerException(见上面的代码)为什么?

附言(更新)

myContent 线性布局被添加到定义在 main.xml 中的另一个线性布局,我的 Activity setContentView(R.layout.main)

最佳答案

如果你的 R.id.name_text 在另一个布局中,你必须膨胀那个布局然后附加它,
因为当您引用 R.id.name_text 时,无法找到它,因为您的布局不存在,除非它被膨胀。

例如

View child = getLayoutInflater().inflate(R.layout.child);
myContent.addView(子);

关于android - 为什么以编程方式添加我的 TextView 时出现 NullPointerException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6787879/

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