如何将数据从一个 Activity 传递到下一个 activity
How to pass the data from one Activity to the next activity
我目前正在开发 android 应用程序并使用 firebase 实时数据库。如何将用户数据从登录activity传递到主页activity的导航header?
为了将用户数据传递到主页 Activity 的导航 header,我应该在登录 Activity 中添加什么?
用户登录时不需要输入用户名,但我希望从实时数据库中获取用户名并将其也传递给导航Header。
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);
}
}
}
Home.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());
我希望我的导航 header 会在上面显示用户邮箱和用户名。
您可以使用 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>);
希望这能回答您的问题。
如果您有少量数据(如姓名、电子邮件),那么您可以使用上面@Mushirih 建议的 intent putExtra 方法。
但是如果你有一堆数据集,你可以使用 Android Bundle Intent 将其传递到下一个 Activity 中,如下所示
登录Activityclass
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);
第二个Activity class 你可以这样接收它:-
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...............
我目前正在开发 android 应用程序并使用 firebase 实时数据库。如何将用户数据从登录activity传递到主页activity的导航header?
为了将用户数据传递到主页 Activity 的导航 header,我应该在登录 Activity 中添加什么?
用户登录时不需要输入用户名,但我希望从实时数据库中获取用户名并将其也传递给导航Header。
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);
}
}
}
Home.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());
我希望我的导航 header 会在上面显示用户邮箱和用户名。
您可以使用 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>);
希望这能回答您的问题。
如果您有少量数据(如姓名、电子邮件),那么您可以使用上面@Mushirih 建议的 intent putExtra 方法。
但是如果你有一堆数据集,你可以使用 Android Bundle Intent 将其传递到下一个 Activity 中,如下所示
登录Activityclass
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);
第二个Activity class 你可以这样接收它:-
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...............