在开始活动之前,在XML中设置ImageView

时间:2016-06-26 18:39:10

标签: java android xml android-studio imageview

我在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文件。

2 个答案:

答案 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,它显然不会显示条形码图片。

  

另外,我有点不确定如何将它作为对象传递?