2017-10-07 22 views
-3

私はAndroidスタジオの初心者です。だから私が何か間違いを犯すなら、私を許してください! 私は、forループの外側で変数String myKeyを使用しようとしています。そのため、Intentはforループ内でもループされません。私はForループの外側で青で囲まれたコードを移動しようとしていますが、String myKeyのために、私はそうすることができません!すべてのヘルプは大幅にforループで初期化された変数の使い方は?

enter image description here

を理解されるであろう。ここに私のコードは、あなたがループの後にそれを使用できるようにするループの前に変数を宣言し

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

を尋ねるアプリケーションに関するコンテキストを生成することができます

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) { } }); } } } } 

・ホープ開発。要するに、このことはこの瞬間にあなたのためではありません。これは長い道のりです。その間に何かを飛ばすべきではありません。運が良かった。 –

答えて

3

ループの前に変数をグローバルに宣言します。何か助けが必要な場合は、このヘルプは、あなたが...あなたは、あなたが基本的なプログラミングを習得し、それを試してみるとOSの哲学を学ぶべきであるAndroidのアプリケーションを作るに移動する前に

1

です。

String myKey = null; 
for (/**/){ 
    ... 
    //update myKey 
    myKey = objSnapshot.getKey(); 
} 
//use myKey 
intent.putExtra("value", myKey); 
関連する問題