引起:java.lang.NullPointerException同时尝试调用其他Activity

时间:2013-05-18 11:05:19

标签: android

我试图在ProductsAformationActivity.java中的AlertDialog中单击OK时尝试调用ProductsActivity.java,但总是在第76行遇到错误由:java.lang.NullPointerException 引起,

   KEY_CATEGORY = bdl.getString("category");

ProductInformationActivity.java:

    alertdialog.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) 
    {
      finish();
    }
});     

ProductsActivity.java:

    list.setAdapter(adapter);

    Bundle bdl = getIntent().getExtras();
            // below is the line number 76
    KEY_CATEGORY = bdl.getString("category");

logcat的:

05-18 16:23:25.027: E/AndroidRuntime(922): Caused by: java.lang.NullPointerException
05-18 16:23:25.027: E/AndroidRuntime(922):  at com.erachnida.restaurant.versionoct.menu.ProductsActivity.onCreate(ProductsActivity.java:76)
05-18 16:23:25.027: E/AndroidRuntime(922):  at android.app.Activity.performCreate(Activity.java:5104)
05-18 16:23:25.027: E/AndroidRuntime(922):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
05-18 16:23:25.027: E/AndroidRuntime(922):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
05-18 16:23:25.027: E/AndroidRuntime(922):  ... 11 more

2 个答案:

答案 0 :(得分:0)

该错误意味着没有额外内容:如果原始Intent中没有设置额外内容,Intent.getExtras()将返回null。您应该将其包含在if(getIntent().getExtras() != null){ Bundle bdl = getIntent().getExtras(); }等条件检查中。

答案 1 :(得分:0)

你应该在一项活动中这样做:

    Intent intent = new Intent(getBaseContext(), ProductsActivity.class);
    Bundle bundle = new Bundle();
    bundle.putString("category", "yourStringHere");
    intent.putExtras(bundle);
    startActivity(intent);

然后在ProductsActivity中执行代码:

    Bundle bdl = getIntent().getExtras();
    KEY_CATEGORY = bdl.getString("category");