我目前正在开发一个android应用,并使用firebase实时数据库。如何将用户数据从登录活动传递到家庭活动的导航标题?

为了将用户数据传递到Home Activity的Navigation标头中,我应该在Login Activity中添加什么?

用户无需输入用户名即可登录,但我希望从实时数据库中获取用户名,并将其也传递给导航标题。

Login.java

firebaseAuth.signInWithEmailAndPassword(email,password).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {

            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                progressDialog.dismiss();
                if(task.isSuccessful()){
                    finish();
                startActivity(new Intent(getApplicationContext(),Home.class));

                }
                else
                {

                    Toast.makeText(LoginActivity.this,"Login failed. Kindly check your email and password.",Toast.LENGTH_SHORT);
                }
            }
        }


家.java

View headerView = navigationView.getHeaderView(0);
    useremail = (TextView)headerView.findViewById(R.id.HVuseremail);
    useremail.setText(Common.currentUser.getName());
    username = (TextView)headerView.findViewById(R.id.HVusername);
    username.setText(Common.currentUser.getName());


我希望我的导航标题将在上面显示useremail和用户名。

最佳答案

您可以使用putExtra方法跨Intent传递数据。

Intent intent = new Intent(getBaseContext(), Home.class);
intent.putExtra(<your data unique id in quotes>, <your data e.g username>);
startActivity(intent);


在您的Home.class中,您可以按以下方式检索数据

String username = getIntent().getStringExtra(<your data unique id in quotes>,<default value incase the value is not correctly passed e.g null>);


希望这能回答您的问题。

07-24 19:34
查看更多