You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android页面传值报错:NullPointerException问题求助

问题排查与解决方案

核心错误原因

报错java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference,本质是dua Activity中找不到要赋值的TextView控件:

  • 你在dua.java里用textView = findViewById(R.id.test)查找控件,但对应的activity_dua.xml中的TextView没有设置android:id="@+id/test"属性,导致findViewById返回null,后续调用setText触发空指针异常。

修复步骤

1. 给activity_dua.xml的TextView添加id属性

修改activity_dua.xml中的TextView代码,补充id:

<TextView
    android:id="@+id/test" <!-- 新增这一行 -->
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:text="Value"
    android:textColor="@color/black"
    android:textSize="30sp"/>

2. 优化Intent数据获取逻辑(可选但推荐)

当前代码中getIntent().getExtras().getString("Value")如果Intent没有携带额外数据,getExtras()会返回null,也会触发空指针。建议添加空判断:
修改dua.java的onCreate方法:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_dua);
    textView = findViewById(R.id.test);
    // 优化数据获取逻辑
    if(getIntent() != null && getIntent().getExtras() != null){
        st = getIntent().getExtras().getString("Value");
        // 避免st为null时显示空内容
        textView.setText(st != null ? st : "无数据");
    } else {
        textView.setText("无数据");
    }
}

3. 规范Java类命名(可选)

按照Java开发规范,Activity类名首字母应大写,建议将dua.java重命名为DuaActivity.java,同时修改AndroidManifest.xml中的对应配置:

<activity
    android:name=".DuaActivity"
    android:exported="false" />

并同步修改MainActivity中跳转的Intent代码:

Intent intent = new Intent(MainActivity.this, DuaActivity.class);

验证修复

完成上述修改后,重新编译运行App:

  • 在MainActivity的输入框中输入内容,点击submit按钮,DuaActivity会正常显示输入的内容,不会再出现崩溃。

内容的提问来源于stack exchange,提问作者StressCodingCok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 15:39:20