我是Android工作室的初学者。如果我犯了任何错误,请原谅我! 我试图在for循环之外使用变量String myKey,以便Intent也不会在for循环中循环。我试图移动For循环外面的蓝色代码,但由于String 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) {
}
});
}
}
}
}
答案 0 :(得分:3)
在循环之前以全局方式声明变量。
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) {
}
});
}
}
}
}
希望这有助于你...如果你需要任何帮助,你可以问
答案 1 :(得分:1)
在for循环之前声明变量,以便在循环之后使用它。
String myKey = null;
for (/**/){
...
//update myKey
myKey = objSnapshot.getKey();
}
//use myKey
intent.putExtra("value", myKey);