0

I am trying to call, ProductsActivity.java whenever user do click on OK in AlertDialog in ProductInformationActivity.java, but always getting an Error Caused by:java.lang.NullPointerException at line number 76th, which is

   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
4

2 回答 2

0

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

于 2013-05-18T11:25:44.983 回答
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");
于 2013-05-18T11:43:50.370 回答