0

正在将一个字符串从一个活动传递到另一个,它的工作但如果我尝试打开活动而不传递字符串它会抛出一个空指针异常,请协助

    Bundle gotBasket = getIntent().getExtras(); 
    gotPassenger= gotBasket.getString("passenger");
    gotStaffNumber= gotBasket.getString("clientcode");
    etPassenger.setText(""+ gotPassenger );
    etStaffNumber.setText("" + gotStaffNumber);
4

2 回答 2

5

如果我尝试在不传递字符串的情况下打开活动它会引发空指针异常

对,因为你没有发送任何数据

在分配之前检查 gotBasket 是否为NULL

像这样:

Bundle gotBasket = getIntent().getExtras();
if(gotBasket != null){
    gotPassenger= gotBasket.getString("passenger");
    gotStaffNumber= gotBasket.getString("clientcode");
    etPassenger.setText(""+ gotPassenger );
    etStaffNumber.setText("" + gotStaffNumber);
}
于 2013-02-05T06:02:02.833 回答
2

代替:

Bundle gotBasket = getIntent().getExtras();

更好地使用这个:

if(getIntent().hasExtras("passenger")){
//get Extras here
}

这样,您将不会获得NPE,因为您仅在通过 Bundle Extras 时才尝试获得它们

于 2013-02-05T06:03:10.637 回答