Как передать данные из одного занятия в следующее занятие - PullRequest
0 голосов
/ 21 января 2019

В настоящее время я занимаюсь разработкой приложения для 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);
                }
            }
        }

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

Я ожидаю, что мой заголовок навигации покажет useremail и имя пользователя.

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Если у вас небольшой набор данных (например, Имя, Электронная почта), вы можете использовать метод намеренного putExtra, предложенный @ Mushirih выше.

Но если у вас есть набор данных, вы можете использовать Android Bundle Intent, чтобы передать его в следующем действии, как показано ниже

LoginActivity class

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

В классе SecondActivity вы можете получить его следующим образом: -

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...............
0 голосов
/ 21 января 2019

Вы можете передавать данные через Intents с помощью метода putExtra.

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

Надеюсь, что это ответ на ваш вопрос.

...