• Как подключить библиотеку Picasso к проекту android?

    @Darkos-den Автор вопроса
    Денис Загаевский, как было на гитхабе написано, так и сделал. Я пробовал писать версию 2.5.2 - но все то же самое
  • Как оформить приложение в стиле mvp?

    @Darkos-den Автор вопроса
    Когда презентер сочтёт нужным

    если я в OnCreate у фрагмента сообщу презентеру об этом (вызову какой то метод init() у интерфейса презентера), и он в этот момент загрузит все данные необходимые для отображения в списке и вызовет showList, это будет правильно?
  • Как оформить приложение в стиле mvp?

    @Darkos-den Автор вопроса
    Денис Загаевский, получается, вью содержит интерфейс презентера, а презентер интерфейс вью и модель. вью генерирует события (нажатие на кнопку, изменение текста в поле ввода и т.д.) вызывая методы интерфейса презентера, на которые презентер реагирует обработкой модели и вызовом методов интерфейса вью для отображения измененной информации. я правильно это понимаю?

    получается в адаптере будет метод наподобие этого:
    public void addAll(ArrayList<String> list)
        {
            mModel.clear();
    
            for(String s : list)
            {
                mModel.add(s);
            }
            
            notifyDataSetChanged();
        }


    а во вью такой метод:
    @Override
        public void showList(ArrayList<String> list)
        {
            ((ListAdapter)mRecyclerView.getAdapter()).addAll(list);
        }


    но остается не понятным, когда этот метод будет вызываться?
  • Как оформить приложение в стиле mvp?

    @Darkos-den Автор вопроса
    Денис Загаевский, я запутался.
    Вью вообще не знает про презентер (у Вью даже ссылки на него быть не должно, не то, что данные требовать)

    здесь в презентер передается активити
    здесь во вью есть ссылка на презентер
    еще несколько статей находил, но там слишком заумно написано, я ничего не понял...

    Презентер получает данные и зовёт метод setItems у Вью.


    где конкретно этот setItems нужно реализовать я так и не понял.

    можете пример простейший привести как это правильно делается, желательно с RecycleView?
  • Как оформить приложение в стиле mvp?

    @Darkos-den Автор вопроса
    Денис Загаевский, я переписал презентер, теперь туда не передается вью.

    У MVPView должен быть метод showItems(List), который дергает презентер и в котором элементы просечиваются в адаптер.


    Я не пойму где этот метод будет вызываться, в адаптере?
    Я правильно понял, что в адаптере не должно ничего хранится касательно модели? то есть в этом коде:
    код адаптера
    public class ListAdapter extends RecyclerView.Adapter<ListAdapter.ViewHolder>
    {
        private ArrayList<Crime> mCrimes;
        private final ListAdapterCallback mListener;
    
        public ListAdapter(ListAdapterCallback listener)
        {
            mCrimes = CrimeLab.get().getCrimes();
            mListener = listener;
        }
    
        public Crime getItem(int position)
        {
            return mCrimes.get(position);
        }
    
        @Override
        public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
        {
            View view = LayoutInflater.from(parent.getContext())
                    .inflate(R.layout.list_item,parent,false);
    
            return new ViewHolder(view, mListener);
        }
    
        @Override
        public void onBindViewHolder(ViewHolder holder, int position)
        {
            holder.mTitle.setText(mCrimes.get(position).getTitle());
            holder.mDate.setText(mCrimes.get(position).getDate().toString());
            holder.mSolved.setChecked(mCrimes.get(position).isSolved());
        }
    
        @Override
        public int getItemCount()
        {
            return mCrimes.size();
        }
    
        public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener
        {
            private final ListAdapterCallback mListener;
    
            TextView mTitle;
            TextView mDate;
            CheckBox mSolved;
    
            public ViewHolder(View itemView, ListAdapterCallback listener)
            {
                super(itemView);
    
                mListener = listener;
                this.itemView.setOnClickListener(this);
    
                mTitle = itemView.findViewById(R.id.crime_item_title);
                mDate = itemView.findViewById(R.id.crime_item_date);
                mSolved = itemView.findViewById(R.id.crime_item_solved);
            }
    
            @Override
            public void onClick(View v)
            {
                mListener.onItemClick(getAdapterPosition());
            }
        }
    }



    нужно не хранить ArrayList а каждый раз кода необходимо обращаться к презентеру, что бы тот предоставил соответствующие данные? или я что то опять не так понял...
  • Как оформить приложение в стиле mvp?

    @Darkos-den Автор вопроса
    Не совсем пойму что это значит. У меня это правильно реализовано?