我有与Intent有关的问题。
A类
Intent i=new Intent(getApplicationContext(),JobOffer.class);
i.putExtra("From",aryListBean.get(arg2).getUser());
i.putExtra("StartDate",aryListBean.get(arg2).getStartDate());
i.putExtra("DueDate",aryListBean.get(arg2).getEndDate());
startActivity(i);
B类
Bundle b=getIntent().getExtras();
String user=b.getString("From");
String startdate=b.getString("StartDate");
String duedate=b.getString("DueDate");
ArrayList<String> hr_offerdet=b.getStringArrayList("AryHrOffer");
tvUser.setText(" "+user);
tvStarDate.setText(" "+startdate);
tvDueDate.setText(" "+duedate);
C类:返回B类的按钮
现在,我已经将数据成功发送到A类到B类。我将数据发送到B类,现在当我从B类移到C类,然后又回到B类时,会出现Nullpointer异常。你有什么不同的解决方法吗?请帮忙
答案 0 :(得分:4)
在您的代码中,您无法使用键“AryHrOffer”传递arraylist。
此外,您应该始终先检查捆绑是否存在。
例如。 if(b!=null){ //... }
然后,所有需要打开Activity B的类都应该传递所需的参数(如果它们是真正需要的话),否则忽略如果bundle是null。
编辑:
重新阅读你的问题后,我注意到你说过 “..再次回到到B级,有Nullpointer异常”
问题可能不在于意图中的额外内容,而是在你的Activity B的onResume上。
答案 1 :(得分:1)
首先:请提供logcat以及您拥有NullPointer的指示。
你必须检查这些事情:
if (getIntent() != null && getIntent().getExtras() != null) {
Bundle b = getIntent().getExtras();
String user = b.getString("From");
String startdate = b.getString("StartDate");
String duedate = b.getString("DueDate");
ArrayList < String > hr_offerdet = b.getStringArrayList("AryHrOffer");
tvUser.setText(" " + user);
tvStarDate.setText(" " + startdate);
tvDueDate.setText(" " + duedate);
}
答案 2 :(得分:0)
您需要检查bundle
是否为null
。
if(b!=null){
// your code
}