在Android中使用Intent时出现Nullpointer异常

时间:2013-03-07 08:12:59

标签: java android

我有与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异常。你有什么不同的解决方法吗?请帮忙

3 个答案:

答案 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

}