我在Android应用程序中实现了条形码扫描程序。我想将扫描仪生成的条形码图像(位图)设置为XML文件中的ImageView。
但是,在我启动MatasActivity(将显示Image / ImageView)之前,不会初始化此XML文件。这给了我一个nullpointerexception,因为" imageCode"变量无法找到" R.id.imageCode"来自XML文件。
如何在新活动中从XML文件设置ImageView - 我无法在startActivity之后执行此操作(因为其余代码不会运行,而是新活动中的onCreate)
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if(result != null) {
if(result.getContents() == null) {
Log.d("MainActivity", "Cancelled scan");
Toast.makeText(this, "Cancelled", Toast.LENGTH_LONG).show();
} else {
Log.d("MainActivity", "Scanned");
Toast.makeText(this, "Scanned: " + result.getContents(), Toast.LENGTH_LONG).show();
Intent intent = new Intent(MainActivity.this, MatasActivity.class);
imageCode = (ImageView) findViewById(R.id.imageCode);
Bitmap myBitmap = BitmapFactory.decodeFile(result.getBarcodeImagePath());
imageCode.setImageBitmap(myBitmap);
startActivity(intent);
}
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
MatasActivity的目的是运行XML文件(以显示条形码)AKA MatasActivity方法中的onCreate仅执行:
setContentView(R.layout.picked_card);
哪个是保存imageCode的XML文件。
答案 0 :(得分:0)
为什么要在开始活动之前设置图像? 它不像那样工作。你可以通过myBitmap'到新的Activity(MatasActivity),然后在它启动后设置它。
答案 1 :(得分:0)
嗯,部分有效。现在我的MatasActivity看起来像这样:
public LogisticGrowthDCA(double[] myInputArray)
{
for (int i = 0; i< myInputArray.Length; i++)
{
myArray[i] = myInputArray[i]; //do some calculation
return myArray; <-- HERE
}
}
但是,如果我尝试从应用程序的其他部分访问Activity,它显然不会显示条形码图片。
另外,我有点不确定如何将它作为对象传递?