繁体   English   中英

Android getIntent()Nullpointer异常

[英]Android getIntent() Nullpointer Exception

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

单击(并按住)某项时,您将获得与添加新记录相同的站点。 (往上看)。 直到这里一切都正常。 现在,我尝试添加一个新的Intent,因为(addRecord.xml)中的EditTexts应该填充有被单击(longclick)的ListView的Item数据。

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");

我已经读过很多关于这种错误的话题,但是灵魂错觉并没有帮助我

有任何想法吗?

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

通过

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

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

通过

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

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

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

请使用此为您的要求。它将正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM