[英]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.getBooleanExtra
和i.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.