Android getIntent() 空指针异常

Posted

技术标签:

【中文标题】Android getIntent() 空指针异常【英文标题】:Android getIntent() Nullpointer Exception 【发布时间】:2014-05-29 15:25:56 【问题描述】:

在我的 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 填充有名称。它工作正常。

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

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

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

我已经阅读了很多关于这种错误的主题,但是解决方案对我没有帮助

有什么想法吗?

【问题讨论】:

【参考方案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】:

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

【讨论】:

【参考方案3】:
   Intent i = getIntent();
   final boolean update =i.getBooleanExtra("update",false);
   if(update==true)
   
       editText1.setText(getIntent().getExtras().getString("Name"));  
   

请根据您的要求使用它。它可以正常工作。

【讨论】:

以上是关于Android getIntent() 空指针异常的主要内容,如果未能解决你的问题,请参考以下文章

Android 防止空指针异常

Android中的导航抽屉空指针异常

如何解决空指针异常和 ThreadException 中的错误android

Android GoogleMaps 空指针异常 lagitutde

Android-空指针异常反复崩溃

Android soundpool 空指针异常