Как исправить доступ к экземпляру EditText с помощью метода "findViewById ()", расположенного на вложенном макете в приложении панели навигации? - PullRequest
0 голосов
/ 23 апреля 2019

Я создаю приложение для Android, и в классе MainActivity возникла проблема с реализацией части алгоритма. Моя проблема заключается в том, как сделать идентификатор XML-файла видимым в MainActivity, причем макет панели навигации представляет собой файл макета XML, добавленный в метод "setContentView ()", поскольку приложение организовано как макет панели навигации с внутренними макетами, и один из этих макетов содержит классы EditText?

Мне действительно нужен доступ к этому текстовому полю в классе MainActivity, и я не могу найти способ сделать это.

В предоставленном коде я хочу получить к ним доступ, вызвав методы finViewById (), отмеченные в комментариях 1. и 2.

XML-файлами являются Activity_main, Input_layout и setting_layout. Activity_main - это компоновка панели навигации, а остальные раскладки отображаются с вызовом фрагмента.

Я пытался включить его в основной XML-файл активности, и это помогло решить проблему, хотя это не решение, которое мне нужно.

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    input = findViewById(R.id.text1); //1.
    output = findViewById(R.id.text_output); //2.

    input.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });
    BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
    navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
}

1 Ответ

0 голосов
/ 23 апреля 2019

Если представление находится внутри BottomNavigationView, я думаю, вы можете использовать

navigation.findViewById(R.id.YOUR_VIEW_ID);

, чтобы получить его.

...