Java Android String Intent отображает ноль при переходе на предыдущий экран

Итак, у меня есть экран, на котором пользователь вводит свое имя, при нажатии кнопки он перенаправляется в меню, где отображается его имя.

На экране меню у меня есть кнопка, которая переводит меня на другой экран («Обо мне»), на этом экране у меня есть кнопка с намерением вернуться к действию меню.

Проблема в том, что когда я нажимаю кнопку с намерением вернуться, имя отображается как нулевое вместо того, что ввел пользователь.

Этого не происходит, когда я использую настоящие кнопки навигации Android для перехода к предыдущему экрану, а только кнопку, которую я создал, чтобы вернуться к действию меню.


Активность запуска, когда пользователь вводит свое имя


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_launcher_screen);

        Button launcherNextBtn = (Button) findViewById(R.id.launcherNextBtn);
        EditText launcherVisitorNameEditText = (EditText) findViewById(R.id.launcherVisitorNameEditText);
        TextView launcherVisitorNameErrorTextView = (TextView) findViewById(R.id.launcherVisitorNameErrorTextView);

        launcherVisitorNameErrorTextView.setText("");

        launcherNextBtn.setOnClickListener((View v) -> {

            String visitorName = launcherVisitorNameEditText.getText().toString();

            if (visitorName.equals("")) {
                launcherVisitorNameErrorTextView.setText("Please enter a value");
            } else {
                launcherVisitorNameErrorTextView.setText("");
                Intent goToMenuActivity = new Intent(LauncherScreen.this, MenuScreen.class);
                goToMenuActivity.putExtra("visitorName", visitorName);
                startActivity(goToMenuActivity);
            }
        });


Активность меню, где отображается имя пользователя

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_menu_screen);

        Button menuHomeBtn = (Button) findViewById(R.id.menuHomeBtn);
        Button menuAboutMeBtn = (Button) findViewById(R.id.menuAboutMeBtn);
        TextView menuNameTextView = (TextView) findViewById(R.id.menuNameTextView);

        String visitorName = getIntent().getStringExtra("visitorName");
        menuNameTextView.setText("Dear " + visitorName);

        menuHomeBtn.setOnClickListener((View v) -> {
            Intent goToLauncherActivity = new Intent(MenuScreen.this, LauncherScreen.class);
            goToLauncherActivity.putExtra("visitorName", visitorName);
            startActivity(goToLauncherActivity);
        });
        
        menuAboutMeBtn.setOnClickListener((View v) -> {
            Intent goToAboutMeActivity = new Intent(MenuScreen.this, AboutMeScreen.class);
            startActivity(goToAboutMeActivity);
        });
    }


О моей деятельности, когда я нажимаю кнопку, чтобы вернуться в меню, я получаю «Дорогой ноль»

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_about_me_screen);

        Button aboutMeBackBtn = (Button) findViewById(R.id.aboutMeBackBtn);

        String visitorName = getIntent().getStringExtra("visitorName");


        aboutMeBackBtn.setOnClickListener((View v) -> {
            Intent goToMenuActivity = new Intent(getApplicationContext(), MenuScreen.class);
            startActivity(goToMenuActivity);
        });
    }
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
23
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваша проблема на экране Обо мне активность

aboutMeBackBtn.setOnClickListener((View v) -> {
        Intent goToMenuActivity = new Intent(getApplicationContext(), MenuScreen.class);
        startActivity(goToMenuActivity);
    });

На этот раз вы не передаете дополнительное поле, поэтому получаете null

Ответ 1

aboutMeBackBtn.setOnClickListener((View v) -> {
        onBackPressed();
    });

Ответ 2

aboutMeBackBtn.setOnClickListener((View v) -> {
        Intent goToMenuActivity = new Intent(getApplicationContext(), MenuScreen.class);
        goToMenuActivity.putExtra("visitorName", visitorName)
        startActivity(goToMenuActivity);
    });

Другие вопросы по теме