Size: a a a

Android Developers

2020 June 17

DD

Dmitriy Dyachenko in Android Developers
Georgy Terekhov
Я начал читать про ресайкл, но я так и не понял в Holder кидать функционал или в активити куда идет вывод
Погугли примери обработки нажатия на элементы в RecyclerView - станет проще
источник

v

voodoo in Android Developers
вопрос по легаси. есть такая прога CSipSimple, уже давно не поддерживается, но работает до 10 ведроида.
на 10 работает криво. полез в исходники, думал переделать, споткнулся на
android.support.v7.widget.ActionMenuPresenter
в androidx оно числится как internal и говорит
ActionMenuPresenter is not public in androidx.appcompat.widget; cannot be accessed from outside package

вопрос 1. Это можно как-то обойти?
вопрос 2. В новой студии можно ли пересобрать старые исходники или нужно соответственно старую студию для старого gradle
источник

v

voodoo in Android Developers
Georgy Terekhov
Я начал читать про ресайкл, но я так и не понял в Holder кидать функционал или в активити куда идет вывод
вставлю свои 5 копеек.
сорян, у меня на котлине) это вот так выглядит
recyclerView.addOnItemTouchListener(
           RecyclerItemClickListener(context!!, object : RecyclerItemClickListener.OnItemClickListener {
               override fun onItemClick(view: View, position: Int) {
                   TICKET = view.findViewById<TextView>(R.id.mid).text
                   CANWRITE = view.findViewById<TextView>(R.id.status).text == "Открыт"                    
               }
           })
       )
источник

GT

Georgy Terekhov in Android Developers
Уже понял как решить задачу, ВСЕМ СПАСИБО!!
источник

OH

Oleksandr Hulak in Android Developers
voodoo
вставлю свои 5 копеек.
сорян, у меня на котлине) это вот так выглядит
recyclerView.addOnItemTouchListener(
           RecyclerItemClickListener(context!!, object : RecyclerItemClickListener.OnItemClickListener {
               override fun onItemClick(view: View, position: Int) {
                   TICKET = view.findViewById<TextView>(R.id.mid).text
                   CANWRITE = view.findViewById<TextView>(R.id.status).text == "Открыт"                    
               }
           })
       )
Йоу, а что за RecyclerItemClickListener ?
источник

v

voodoo in Android Developers
Oleksandr Hulak
Йоу, а что за RecyclerItemClickListener ?
та нагуглил где-то на просторах, вынес в отдельный файл
(нет здесь ничего)
источник

OH

Oleksandr Hulak in Android Developers
voodoo
та нагуглил где-то на просторах, вынес в отдельный файл
(нет здесь ничего)
да я так и понял, просто странно это TouchListener вешать, когда можно и просто клики обрабатывать)
источник

v

voodoo in Android Developers
нууу я был молод, времени мало, решать надо... что попалось первее, то и сделал
источник

v

voodoo in Android Developers
хз где там клики обрабатываются
источник

OH

Oleksandr Hulak in Android Developers
voodoo
хз где там клики обрабатываются
во вьюхолдере, писали ж выше
источник

v

voodoo in Android Developers
а, я вспомнил. у меня там типа колбек, и я не стал заморачиваться, как его в холдер запихать. мне было удобнее так
источник

v

voodoo in Android Developers
из адаптера нет доступа к внешнему классу (типа хелпер)
источник

v

voodoo in Android Developers
voodoo
вопрос по легаси. есть такая прога CSipSimple, уже давно не поддерживается, но работает до 10 ведроида.
на 10 работает криво. полез в исходники, думал переделать, споткнулся на
android.support.v7.widget.ActionMenuPresenter
в androidx оно числится как internal и говорит
ActionMenuPresenter is not public in androidx.appcompat.widget; cannot be accessed from outside package

вопрос 1. Это можно как-то обойти?
вопрос 2. В новой студии можно ли пересобрать старые исходники или нужно соответственно старую студию для старого gradle
ветераны спасайте =)
источник

QH

Quantum Harmonizer in Android Developers
voodoo
вопрос по легаси. есть такая прога CSipSimple, уже давно не поддерживается, но работает до 10 ведроида.
на 10 работает криво. полез в исходники, думал переделать, споткнулся на
android.support.v7.widget.ActionMenuPresenter
в androidx оно числится как internal и говорит
ActionMenuPresenter is not public in androidx.appcompat.widget; cannot be accessed from outside package

вопрос 1. Это можно как-то обойти?
вопрос 2. В новой студии можно ли пересобрать старые исходники или нужно соответственно старую студию для старого gradle
а в джавадоке не написано, что использовать вместо?
Накрайняк можно исходниками скопировать
источник

v

voodoo in Android Developers
хз что такое джавадок, я через маппинг заменил по этой ссылке
https://developer.android.com/jetpack/androidx/migrate/class-mappings
а оно мне ерор в ответ "нельзя outside package"
источник

OH

Oleksandr Hulak in Android Developers
voodoo
вопрос по легаси. есть такая прога CSipSimple, уже давно не поддерживается, но работает до 10 ведроида.
на 10 работает криво. полез в исходники, думал переделать, споткнулся на
android.support.v7.widget.ActionMenuPresenter
в androidx оно числится как internal и говорит
ActionMenuPresenter is not public in androidx.appcompat.widget; cannot be accessed from outside package

вопрос 1. Это можно как-то обойти?
вопрос 2. В новой студии можно ли пересобрать старые исходники или нужно соответственно старую студию для старого gradle
я почитал немного, так понимаю это просто для создания и обработки меню в ActionBar? переписать?
источник

v

voodoo in Android Developers
Oleksandr Hulak
я почитал немного, так понимаю это просто для создания и обработки меню в ActionBar? переписать?
честно хз зачем оно и я непротив это удалить вообще, но какие последствия будут... мне нужно просто чтоб работало)
там есть вот такой кусок
ActionMenuPresenter mActionMenuPresenter = new ActionMenuPresenter(getContext()) {
           public void bindItemView(MenuItemImpl item, MenuView.ItemView itemView) {
               super.bindItemView(item, itemView);
               View actionItemView = (View) itemView;
               actionItemView.setBackgroundResource(R.drawable.btn_compound_background);
           }
       };
       mActionMenuPresenter.setReserveOverflow(true);
       // Full width
       mActionMenuPresenter.setWidthLimit(
               getContext().getResources().getDisplayMetrics().widthPixels, true);
       // We use width limit, no need to limit items.
       mActionMenuPresenter.setItemLimit(20);
источник

QH

Quantum Harmonizer in Android Developers
voodoo
хз что такое джавадок, я через маппинг заменил по этой ссылке
https://developer.android.com/jetpack/androidx/migrate/class-mappings
а оно мне ерор в ответ "нельзя outside package"
> хз что такое джавадок
вот с этого и надо начинать
источник

QH

Quantum Harmonizer in Android Developers
voodoo
честно хз зачем оно и я непротив это удалить вообще, но какие последствия будут... мне нужно просто чтоб работало)
там есть вот такой кусок
ActionMenuPresenter mActionMenuPresenter = new ActionMenuPresenter(getContext()) {
           public void bindItemView(MenuItemImpl item, MenuView.ItemView itemView) {
               super.bindItemView(item, itemView);
               View actionItemView = (View) itemView;
               actionItemView.setBackgroundResource(R.drawable.btn_compound_background);
           }
       };
       mActionMenuPresenter.setReserveOverflow(true);
       // Full width
       mActionMenuPresenter.setWidthLimit(
               getContext().getResources().getDisplayMetrics().widthPixels, true);
       // We use width limit, no need to limit items.
       mActionMenuPresenter.setItemLimit(20);
не представляю, кто собирается это читать
источник

OH

Oleksandr Hulak in Android Developers
voodoo
честно хз зачем оно и я непротив это удалить вообще, но какие последствия будут... мне нужно просто чтоб работало)
там есть вот такой кусок
ActionMenuPresenter mActionMenuPresenter = new ActionMenuPresenter(getContext()) {
           public void bindItemView(MenuItemImpl item, MenuView.ItemView itemView) {
               super.bindItemView(item, itemView);
               View actionItemView = (View) itemView;
               actionItemView.setBackgroundResource(R.drawable.btn_compound_background);
           }
       };
       mActionMenuPresenter.setReserveOverflow(true);
       // Full width
       mActionMenuPresenter.setWidthLimit(
               getContext().getResources().getDisplayMetrics().widthPixels, true);
       // We use width limit, no need to limit items.
       mActionMenuPresenter.setItemLimit(20);
ну, судя по примерам в инете, когда-то был Toolbar с MenuView, и у него сеттился MenuPresenter. Думаю, надо будет просто переписать меню в той активити. Глянь, как сейчас пишут.
источник