#android #include #merge
Здравствуйте, сделал свой аналог numericUpDown, т.е. поле с двумя кнопками, которые увеличивают или уменьшают значение. Одна и та же разметка довольно часто используется, поэтому хотел бы на нее ссылаться с помощью include и merge. Есть следующий файл разметки reference_linear_layout_up_down_numeric_buttons:> В основном меню идет отсылка на разметку reference_linear_layout_up_down_numeric_buttons:Как теперь можно в java программе сослаться на кнопки ? Например если я напишу вот так: View mView_LayoutView = findViewById(R.id.layoutUpDownNumerOfStars); Button mButtonUp = mView_LayoutView.findViewById(R.id.buttonArrowUp); То компилятор выдает ошибку NullPointerException. Если написать вот так: Button mButtonUp = findViewById(R.id.buttonArrowUp); То будет неоднозначная ситуация например если несколько ссылок в основной разметке на разметку reference_linear_layout_up_down_numeric_buttons с кнопками. Как в этом случае нужно правильно сослаться на кнопки в java программе? Заранее большое спасибо всем за ответы.
Ответы
Ответ 1
Получить ссылку на merge нельзя. Используется он (как я понял из доков) для возможности заменить 2 include 1 merge. Засим, отличить кнопки из merge друг от друга можно лишь по их родителю. Т.е. нельзя поместить два идетичных merge в один контейнер. Ведь в этом случае у вас будет один и тот же ID у нескольких элементов. Но вы можете поместить по одному merge в разные контейнеры в одной общей разметке и находить их через эти контейнеры. containerView.findViewById(...).;
Комментариев нет:
Отправить комментарий