1

我有一个关于 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 异常。你有什么不同的方法来解决这个问题吗?请帮忙

4

3 回答 3

4

在您的代码中,您无法使用键“AryHrOffer”传递数组列表。

此外,您应该始终先检查捆绑包是否存在。

例如。if(b!=null){ //... }

然后,所有需要打开 Activity B 的类都应该传递所需的参数,如果确实需要它们,则如果 bundle 为 null,则忽略它们。

编辑:

重新阅读您的问题后,我注意到您说“..再次回到B 类,出现 Nullpointer 异常”

问题可能不在于意图传递额外内容,而在于您的 Activity B 的 onResume 上的某些内容。

于 2013-03-07T08:24:52.110 回答
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);
}
于 2013-03-07T08:45:20.710 回答
0

您必须检查是否bundle存在null

if(b!=null){

 // your code

}
于 2013-03-07T08:17:08.387 回答