Android:访问内部和外部循环变量

时间:2017-03-27 04:35:11

标签: java android

我正在尝试访问变量" key"来自最内层循环。但是无法,我已经检查了有关在内部类中访问变量的其他帖子,并遵循了将其声明为final并使其成为全局变量但没有工作的方法。

请检查以下代码并建议我。

在下面的代码中,我可以在循环内看到用户密钥的toast消息,Howevver toast外部循环消息给出空字符串。

 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();

Basically I need this key

1 个答案:

答案 0 :(得分:1)

因为循环还没有运行。循环位于值事件侦听器中。直到稍后,当DatabaseReference调用它时,它才会运行。