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

使用DataBinding为EditText赋值时出现NullPointerException异常

问题原因
  • 你声明了EditActivityBinding对象,但未完成初始化就直接调用binding.edtArticulo,导致空指针异常。
  • 传统的setContentView(R.layout.edit_activity)不会自动生成DataBinding/ViewBinding实例,必须通过绑定框架的专属API初始化绑定对象。
解决办法

1. 确保项目启用绑定功能

如果还没开启,在app模块的build.gradle中添加配置(二选一即可):

android {
    ...
    buildFeatures {
        // 使用DataBinding时开启
        dataBinding true
        // 使用ViewBinding时开启
        // viewBinding true
    }
}

2. 初始化Binding对象并替换布局加载方式

修改EditActivity的onCreate方法,替换原有的setContentView逻辑:

public class EditActivity extends AppCompatActivity {

    EditActivityBinding binding;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 方式一:DataBinding初始化
        binding = DataBindingUtil.setContentView(this, R.layout.edit_activity);
        
        // 方式二:ViewBinding初始化(若使用ViewBinding)
        // binding = EditActivityBinding.inflate(getLayoutInflater());
        // setContentView(binding.getRoot());

        String articulo = getIntent().getStringExtra("ARTICULO");
        Toast.makeText(this, articulo, Toast.LENGTH_SHORT).show();
        
        // 额外判空,避免ARTICULO为null时调用trim()触发新的空指针
        if (articulo != null) {
            binding.edtArticulo.setText(articulo.trim());
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 08:35:19