-3
内部ループループから変数 "key"にアクセスしようとしています。しかし、できない、私は内部クラスの変数にアクセスすることについての他の投稿をチェックし、それを最終的に宣言してグローバル変数にするなどの方法に従ったが、何もしなかった。Android:変数内外ループへのアクセス
以下のコードを確認してください。
次のコードでは、ループ内のユーザーキーのトーストメッセージを見ることができます。ループ外のHowevverトーストメッセージが空の文字列を示しています。
private DatabaseReference mDatabaseUserDetails;
public static String key = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_account);
--- some code ---
mDatabaseUserID = DatabaseUtils.getDatabase().getReference().child("Users").child(user_id);
mDatabaseUserID.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot accountSnapshot: dataSnapshot.getChildren()){
key = accountSnapshot.getKey().toString();
Toast.makeText(getApplicationContext(), key, Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Toast.makeText(getApplicationContext(), key, Toast.LENGTH_LONG).show();
メソッドが呼び出されたときにキーの値が変更されていないので、トーストに空の文字列のみが表示されます。ここでは実行の順序が重要です –
firebaseデータベースを入れてください –
実際にループ内のポストトースト値は、外側にあるトーストとしてループが値を返さないことを示します。 ここでの主なポイントはキー値を取得することです。 – Bala