Русские Блоги
Реализовать динамическое добавление и удаление элемента в recycleView и вложить editText в элемент
Для проекта требуется элемент, который можно выбирать и редактировать, а строку можно динамически добавлять или удалять в соответствии с выбранным типом. Достигнутый эффект следующий:
Класс функции обратного вызова:
Адаптер и ViewHolder:
Расположение элементов в адаптере:
Файл макета счетчика:
Класс модели: Поле isAdded указывает, можно ли удалить этот элемент, когда вы щелкаете, чтобы добавить строку элемента.
Приведенный выше код может достичь эффекта.
Есть подробный момент, который у меня более глубокий опыт использования на этот раз, то есть метод getLayoutPosition () в ViewHolder; в следующем исходном коде перечислены общие методы:
Здесь есть проблемы, над которыми стоит задуматься: во-первых , Создав ViewHolder, мы можем получить макет представления элемента для заполнения с помощью представления элемента Мы можем получить все дочерние элементы управления, то есть в Процесс findViewById дочернего элемента управления передается методу построения ViewHolder (доступны и другие методы), его суть выполняется при генерации ViewHolder в методе onCreateViewHolder ; Во-вторых, Вообще говоря, после того как мы получим дочерний элемент управления findViewById, мы можем установить его событие прослушивателя, например etPayMoney.addTextChangedListener (this) или btn.setOnClickListener (this) и т. Д. , Вот небольшая деталь, потому что в Держатель в onBindViewHolder. etPayMoney.addTextChangedListener (this) также можно использовать, Куда написать такое заявление о событии, Конструктор OnBindViewHolder или ViewHolder раньше был расплывчатым, а теперь более четким. Причина в том, чтобы получить редактируемую в данный момент модель при редактировании с помощью метода dataList.get (index), где метод index — это getLayoutPosition () может точно получить индекс текущей позиции, щелкнув, а getLayoutPosition (), показанный в приведенном выше исходном коде, является методом ViewHolder, который можно вызвать напрямую 。
включить Класс recycleView рассматривает исходный код более чем 10 000 строк кода и различных методов. Восхищаясь исследованиями и разработками и разработчиками, я также напоминаю себе, что мне следует больше смотреть на исходный код. Многие вещи можно изучить и реализовать самостоятельно. Трехсторонняя библиотека не всемогуща, и надеемся избавиться от такой зависимости как можно скорее. на О recycleView можно многое узнать.
Как удалить объект из памяти, Java?
public static UserInterface user;
После закрытия в данном случае Android приложения (onDestroy метод) ссылка сохранилась в памяти как собственно и объект, из за этого в методе onCreate не сработало условие
Как удалить объект из памяти?
На данный момент на уме только поставить (user = null) в onDestroy;
- Вопрос задан более трёх лет назад
- 18458 просмотров
- Вконтакте
Никак. Эта работа мусоросборщика. Чтобы дать ему понять что объект можно стереть из памяти нужно удалить все ссылки на него. Т.е.:
- Вконтакте
- Вконтакте
Какова вероятность запуска гербачколлектора выше: без обращения к данному методу или с обращением?
ПС: И учитесь подбирать выражения. Иначем мне придется призвать модераторов для получения ваших извинений.
@svd71 Причем тут вероятность? Вы пообещали всему интернету что вызов System.gc заставить мусоросборщик работать. Это не так, почитайте документацию.
PS Вы не политик случайно? Очень похоже: сначала обещать, а потом пугать полицией. Призывайте модераторов, надеюсь они удалят ваш ответ.
Тоже задался похожим вопросом. Ранее писал на AS(Flash) там с обработчиками туго, приходиться следить самому. Сейчас в JAVA столкнулся с похожей задачей.
Пример:
Есть некий список чекбоксов, подписываюсь на изменение состояния каждого из них. Сам же список формирует модель из выбранного пользователем файла.
Вопрос:
Важно ли отписываться от каждого чекбокса в случае обновления списка или достаточно просто удалить сам чекбокс?
Просто, список полей не малый и желание оптимизировать постоянно отвлекает. Заранее спасибо!
Чтобы удалить динамически созданные EditTexts
Я написал код для создания динамического EditText. Теперь я хочу удалить из него собственный EditText, например, в контактах в Android. Как добиться этой функциональности? Ниже моего кода, показывающего imgaddress, есть кнопка, по нажатию которой я добавляю представление, т.е. editText и imageview отменяются сейчас при нажатии кнопки отмены. Я хочу удалить editText.
Вы пытаетесь вставить imageView и editText и удалить editText по клику imgaddess? — kamil
да точно такой же функционал я хочу — user2318272
Итак, какой editText вы хотите удалить при нажатии imgaddess? Текст редактирования, который вы добавили с этим адресом изображения? — kamil
По приведенному выше коду я получаю один EditText и Exact перед ним, одно изображение для удаления, поэтому при щелчке этого изображения соответствующий editText должен быть удален — user2318272
Просто опубликуйте мой ответ, пожалуйста, проверьте — kamil
4 ответы
Я обычно использую editText.setVisibility(EditText.GONE); и
editText = null; должен собирать мусор.
ответ дан 25 апр.
да, это можно сделать, но моя проблема в том, как получить динамический EditText — user2318272
конечно, вам нужно будет сохранить ссылку на ваши элементы управления EditText в каком-то массиве/списке массивов. Вы можете сделать это в своем методе editText. — Пиюш-Спроси любую разницу
Я сохранил его в массиве, но мы не знаем, какой пользователь editText хочет удалить, поэтому, нажав на эту кнопку изображения, как его удалить — user2318272
Разве позиция edittext/ImageButton в вашем списке EditText не будет соответствовать индексу этого конкретного EditText в массиве. Поскольку у меня нет доступа к вашему коду, вам нужно будет найти способ, с помощью которого можно получить текущую позицию/индекс нажатой кнопки ImageButton. Как только вы это получите, идите и удалите Edittext, соответствующий этой позиции/индексу, из ArrayList. — Пиюш-Спроси любую разницу
Как удалить программно созданный View?
Хочу сделать приложение "список покупок". При нажатии на кнопку "Добавить" в LinearLayout добавляю новый LinearLayout с текстом(EditText) (название покупки) и кнопкой "Del":
Но я не знаю, как удалить теперь эти элементы при нажатии кнопки Del. Ведь при создании элементов я не задавала ID и, как я поняла, ID можно задать только целочисленным. И нужно кнопки Del тоже отличать одну от другой. Подскажите пожалуйста, как это лучше реализовать. В крайнем случае можно было бы задавать целым числом(по-моему, я видела метод для удаления по ID), но мне кажется, это неправильно.