Программное добавление дополнительных текстов редактирования при нажатии на последний текст редактирования на экране - PullRequest
0 голосов
/ 11 июля 2020

У меня есть фрагмент с прокруткой. Изначально есть 3 редактируемых текста, которые я добавляю программно, а не через xml. Желаемая функция - это когда пользователь щелкает последний текст редактирования, т.е. номер 3, он автоматически добавляет четвертый текст редактирования непосредственно под ним. Когда пользователь нажимает на 4-й текст редактирования, он добавляет 5-й и так далее. Мой код, показанный ниже, почти работает. Когда пользователь нажимает на редактировать текст 3, он добавит четвертый, а когда они нажмут на четвертый, он добавит пятый, однако после этого он больше не будет добавлять никаких текстов редактирования.

У меня есть прослушиватель onFocusChange, и я также обратите внимание, что этот слушатель активируется только на 3-м и 4-м текстах редактирования. По какой-то странной причине слушатель не активируется при нажатии на любой другой текст редактирования.

 // Adds 3 edit texts to the view which are stored in an array list.
 for (int etId = 0; etId <= 3; etId++) {
        etChallenges = new EditText(getContext());
        editTextList.add(etChallenges);
        mLinearLayout.addView(etChallenges);
    }

    etChallenges.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            int last = 0;
            for(last =0; last <= editTextList.size()-1; last++){
                if(last == editTextList.size()-1){
                    etChallenges = new EditText(getContext());
                    editTextList.add(etChallenges);
                    mLinearLayout.addView(etChallenges);
                    break;
                }
            }

1 Ответ

0 голосов
/ 11 июля 2020

Необязательный выход - иметь recyclerview с edittext и начальным размером элемента 3, а затем вы можете добавить больше edittexts, как только последний элемент в recyclerview будет нажат или активен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...