有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android getIntent()空指针异常

在我的主要活动中,我有一个ListView和一个OnClickListener。通过按钮可以切换到另一个站点(addRecord.xml),该站点正在数据库(和ListView)中添加新记录

单击(并按住)某个项目时,您将进入与添加新记录时相同的站点。(见上文)。 在这之前一切都很好。 现在,我尝试添加一个新的意图,因为(addRecord.xml)中的EditText应该用单击的ListView项(longclick)的数据填充

Intent i = new Intent(getApplicationContext(),ActivityAddRecord.class);
                    i.putExtra("Name",  arrayList.get(position).getName());
                    i.putExtra("update", true);
                    startActivity(i);

在ActivityAddRecord类中,我添加了:

  Intent i = getIntent();
       final boolean update = i.getExtras().getBoolean("update");
       if(update==true)
       {
           editText1.setText(getIntent().getExtras().getString("Name"));  
       }

现在,当点击并按住ListView项时,您会看到addrecord。xml站点和EditText中填入了名称。它很好用

但当我想添加新记录时(通过点击按钮),应用程序崩溃。如果没有这6行代码,它不会崩溃

在LogCat中,它在第52行显示NullPointerException,这是

final boolean update = i.getExtras().getBoolean("update");

我读过很多关于这种错误的话题,但这些解决方案对我没有帮助

有什么想法吗


共 (2) 个答案

  1. # 1 楼答案

    替换final boolean update = i.getExtras().getBoolean("update");

    final boolean update = i.getBooleanExtra("update");

    还有editText1.setText(getIntent().getExtras().getString("Name"));

    editText1.setText(i.getStringExtra("Name"));

  2. # 2 楼答案

    您应该使用i.getBooleanExtrai.getStringExtra,因为您没有提供捆绑包(您没有调用i.setExtras(Bundle)