繁体   English   中英

如何使用已在for循环中初始化的变量?

[英]How to use a variable that has been initialized in the for loop?

我是 Android Studio 的初学者。 所以如果我犯了任何错误,请原谅我! 我试图在 for 循环之外使用变量 String myKey 以便 Intent 也不会在 for 循环内循环。 我试图将用蓝色圈出的代码移到 For 循环之外,但由于字符串 myKey,我无法这样做! 任何帮助将不胜感激

在此处输入图片说明

这是我的代码

 protected final void onActivityResult(int requestCode, int resultCode, final Intent data) {
    if (requestCode == BARCODE_READER_REQUEST_CODE) {
        if (resultCode == CommonStatusCodes.SUCCESS) {
            if (data != null) {
                final Barcode barcode = data.getParcelableExtra(BarcodeCaptureActivity.BarcodeObject);
                Point[] p = barcode.cornerPoints;
                 database.orderByChild("barcode").equalTo(barcode.displayValue).addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(final DataSnapshot dataSnapshot) {
                        for (DataSnapshot objSnapshot : dataSnapshot.getChildren()) {
                            String myKey = objSnapshot.getKey();
                            Toast.makeText(Inventory.this, myKey, Toast.LENGTH_SHORT).show();

                             Intent intent = new Intent(Inventory.this,Edit.class);
                             intent.putExtra("value", myKey);
                             startActivity(intent);

                        }

                    }


                    @Override
                    public void onCancelled(DatabaseError databaseError) {

                    }
                });
            }
        }
    }
}

否则在循环之前全局声明变量。

protected final void onActivityResult(int requestCode, int resultCode, final Intent data) {
if (requestCode == BARCODE_READER_REQUEST_CODE) {
    if (resultCode == CommonStatusCodes.SUCCESS) {
        if (data != null) {
            String myKey="";
            final Barcode barcode = data.getParcelableExtra(BarcodeCaptureActivity.BarcodeObject);
            Point[] p = barcode.cornerPoints;
             database.orderByChild("barcode").equalTo(barcode.displayValue).addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(final DataSnapshot dataSnapshot) {
                    for (DataSnapshot objSnapshot : dataSnapshot.getChildren()) {
                        myKey = objSnapshot.getKey();
                        Toast.makeText(Inventory.this, myKey, Toast.LENGTH_SHORT).show();



                    }
                   Intent intent = new Intent(Inventory.this,Edit.class);
                   intent.putExtra("value", myKey);
                   startActivity(intent);

                }


                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });
        }
    }
}
}

希望这对你有帮助......如果你需要任何帮助,你可以问

在 for 循环之前声明变量,以便您可以在循环之后使用它。

String myKey = null;
for (/**/){
    ...
    //update myKey
    myKey = objSnapshot.getKey();
}
//use myKey
intent.putExtra("value", myKey);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM