我遇到了一个问题,我无法理清我所获得的NullPointerException
(NPE)。
这是我的MainActivity代码
public void onActivityResult(int requestCode, int resultCode, Intent data) {
IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
String bccode = result.getContents();
if(result != null) {
if(result.getContents() == null) {
Toast.makeText(this, "Cancelled", Toast.LENGTH_LONG).show();
} else {
Intent sendBarCode= new Intent(MainActivity.this, showdata.class);
sendBarCode.putExtra("barccode", bccode);
startActivity(sendBarCode);
startActivity(new Intent(MainActivity.this, showdata.class));
}
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
我的班级收到它showdata.class:
public String barcode = getIntent().getStringExtra("barccode");
确切错误:
引起:java.lang.NullPointerException:尝试在空对象引用上调用虚方法'java.lang.String android.content.Intent.getStringExtra(java.lang.String)'
这个特殊的NPE让我感到有些困惑,因为我遵循了我在网上找到的所有说明。
答案 0 :(得分:2)
防止NPE
final Intent intent = getIntent();
if (intent != null) {
...
}
else {
Log.d(TAG, "No intent");
}
答案 1 :(得分:2)
因此,您需要拨打startActivity
两次,一次使用数据,一次使用新的Intent
,但不会有任何数据。
答案 2 :(得分:1)
尝试在showdata
课程中进行此操作。
public String barcode = null;
Intent i = getIntent();
barcode =i.getStringExtra("barccode");