Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将数据从一个活动传递到下一个活动_Java_Firebase_Android Studio_Firebase Realtime Database_Pass Data - Fatal编程技术网

Java 如何将数据从一个活动传递到下一个活动

Java 如何将数据从一个活动传递到下一个活动,java,firebase,android-studio,firebase-realtime-database,pass-data,Java,Firebase,Android Studio,Firebase Realtime Database,Pass Data,我目前正在开发一个android应用程序,并使用firebase实时数据库。如何将用户数据从登录活动传递到主页活动的导航标题 为了将用户数据传递到主活动的导航标题,我应该在登录活动中添加什么 用户无需输入用户名即可登录,但我希望从实时数据库获取用户名,并将其传递到导航标题 Login.java firebaseAuth.signInWithEmailAndPassword(email,password).addOnCompleteListener(this, new OnCompleteList

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

为了将用户数据传递到主活动的导航标题,我应该在登录活动中添加什么

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

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);
                }
            }
        }
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 = new Intent(getBaseContext(), Home.class);
intent.putExtra(<your data unique id in quotes>, <your data e.g username>);
startActivity(intent);
Intent Intent=newintent(getBaseContext(),Home.class);
意图。额外(,);
星触觉(意向);
在Home.class中,您可以按如下方式检索数据

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

希望这能回答您的问题。

如果您有少量数据(如姓名、电子邮件),那么您可以使用上面@Mushirih建议的额外方法

但如果您有一组数据集,那么您可以使用Android Bundle Intent在下面的活动中传递它

逻辑活动类

        Bundle bundle = new Bundle();
        bundle.putString("Name",value);
        bundle.putInt("Phone",6752525);
        bundle.putBoolean("IsMale",false);
        //..................like so on ............
        Intent intent = new Intent(LoginActivity.this,SecondActivity.class);
        intent.putExtras(bundle);
        startActivity(intent);
在第二个活动类中,您可以收到如下信息:-

Bundle bundle = getIntent().getExtras();
 String showtext = bundle.getString("Name"); //this for string
 int phone = bundle.getInt("Phone"); // this is for phone
  //.....like for other data...............

这些方法的可能重复可以在textview和textview之间使用。但是,我想从firebase实时数据库中检索用户名数据,我希望使用“Common.currentUser”作为检索数据的方法。我可以知道怎么做吗?他们用什么登录?