Size: a a a

Android Developers

2020 January 27

O

OK in Android Developers
Оганнес Асатрян
обожаю такие вопросы
Я извиняюсь, если надедаю
источник

O

OK in Android Developers
...надоедаю
источник

ОА

Оганнес Асатрян in Android Developers
не, ты не первый и не последний
источник

ОА

Оганнес Асатрян in Android Developers
я прост хочу понять каким вообще образом возникают такие формулировки вопросов?
источник

ОА

Оганнес Асатрян in Android Developers
я блин тоже был нубом но я сразу понял суть ресайклера
хочешь обновить вью- обнови данные. нотифай. готово
источник

A

Alex in Android Developers
OK
Еще один вопрос, если не мешаю. Можно ли внутри класса от RecyclerView.Adapter, обратится к viewHolder по индексу элемента?
Нельзя, это вьюхолдер должен вызывать калбаки РЦ / Вью / Презентера
Лучше просто notifyItemChanged
источник

А

Александр in Android Developers
Ой, только не надо говорить что ты не пытался инстанс холдера достать по какому - нибудь критерию.
источник

O

OK in Android Developers
Осмелюсь предположить, из-за низкого уровня знаний в этой сфере. Попробую на примере:

Вот класс ViewHolder из RecyclerView.Adpater'а
   public class ViewHolder extends RecyclerView.ViewHolder implements ItemTouchHelperViewHolder {
       public int index;

       public final TextView mServiceTextView;
       public final ImageView mServiceHandleView;

       public ViewHolder(@NonNull View itemView) {
           super(itemView);
           mServiceTextView = itemView.findViewById(R.id.service);
           mServiceHandleView = itemView.findViewById(R.id.service_item_handle);
       }

       public void setData(int index) {
           this.index = index;
           mServiceTextView.setText(services.get(index).service);
       }


При drag'n'drop вызывается следующий код:
   public void onItemMove(int fromPosition, int toPosition) {
       Collections.swap(services, fromPosition, toPosition);
       notifyItemMoved(fromPosition, toPosition);

Т.е. смена элементов, при этом значение index из ViewHolder остается прежним. Проблема при swap, также поменять значение index внутри класса ViewHolder
источник

SB

Simon Belialov in Android Developers
Leroy
Вопрос в том, обязательно ли учить джаву?
Не обязательно. Если что после котлина синтаксис джавы выучить легко, если понадобится
источник

А

Александр in Android Developers
*смаил с попкорном*
источник

O

OK in Android Developers
Александр
Ой, только не надо говорить что ты не пытался инстанс холдера достать по какому - нибудь критерию.
Вот как раз, мне нужно поменять значение index внутри holder'а, после swap при onItemMove
источник

ІЧ

Ів∆н Чернухін in Android Developers
Simon Belialov
Не обязательно. Если что после котлина синтаксис джавы выучить легко, если понадобится
Формально легко, а на практике ставить точку с запятой и в обратном порядке указывать типы немного больно
источник

ОА

Оганнес Асатрян in Android Developers
Александр
Ой, только не надо говорить что ты не пытался инстанс холдера достать по какому - нибудь критерию.
ты мне?
источник

А

Александр in Android Developers
+
источник

А

Александр in Android Developers
OK
Вот как раз, мне нужно поменять значение index внутри holder'а, после swap при onItemMove
Имхо, это плохой мув. Обращайся к адаптеру, если ты хочешь каким - либо образом поменять контент/способ его отображения.
источник

X

Xo3.ToBapbl in Android Developers
Все привет, вопрос по темной теме. Сингл активити архитектура с фрагментами. Пытаюсь зафорсить переключение на темную тему таким кодом в MainActivity:

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
recreate();

Проблема в том что цвета меняют все контролы кроме background цвета у корневого лайаута активити. Если меняю тему через системные настройки андроида все отрабатывает корректно. В чем может быть трабла?
источник

A

Alex in Android Developers
OK
Вот как раз, мне нужно поменять значение index внутри holder'а, после swap при onItemMove
А после onItemMove не происходит onbind разве? Вот там и присваивай новые индексы
источник

O

OK in Android Developers
Alex
А после onItemMove не происходит onbind разве? Вот там и присваивай новые индексы
Ща попробую, спасибо
источник

O

OK in Android Developers
Alex
А после onItemMove не происходит onbind разве? Вот там и присваивай новые индексы
Нет, не вызывается
источник

A

Alex in Android Developers
OK
Нет, не вызывается
тогда вызови сам notifyItemChanged
источник