Android getIntent()Nullpointer异常

时间:2014-04-15 10:22:18

标签: java android listview android-intent nullpointerexception

在我的MainActivity中,我有一个ListView和一个OnClickListenter。通过Button,可以更改为另一个站点(addRecord.xml),这是在数据库(和ListView)中添加新记录。

单击(并按住)某个项目时,您将进入与添加新记录时相同的站点。 (往上看)。 直到这里的一切都很好。 现在我尝试添加一个新的Intent,因为(addRecord.xml)中的EditTexts应该被单击的ListView的Item数据填充(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将填充Name。它工作正常。

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

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

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

我已经阅读了很多有关此类错误的主题,但这些消息并没有帮助我

任何想法?

3 个答案:

答案 0 :(得分:3)

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

通过

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

另外editText1.setText(getIntent().getExtras().getString("Name"));

通过

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

答案 1 :(得分:2)

您应该使用i.getBooleanExtrai.getStringExtra,因为您没有提供套装(您没有拨打i.setExtras(Bundle)

答案 2 :(得分:1)

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

请根据您的要求使用此功能。它将正常工作。