我试图在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
答案 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");