-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Alexander Vasin (prieran) vs CallbackHell #6
base: master
Are you sure you want to change the base?
Conversation
mName.setText(artist.getName()); | ||
mGenre.setText(artist.getGenresAsString()); | ||
// TODO: Сделать строки нормально | ||
mCount.setText(artist.getCountOfAlbums() + " альбомов, " + artist.getCountOfTracks() + " треков"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Возьми за правило сразу делать строки нормально. Я не ожидал такое увидеть.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Хорошо, сейчас поправлю
Спасибо за быструю проверку, даже unbind не успел отправить =)
Падает на планшете, если повернуть экран и потом нажать на элемент списка.
|
public class ArtistListRecyclerAdapter extends RecyclerView.Adapter<ArtistListRecyclerAdapter.ArtistHolder> { | ||
private ArtistProvider mArtistProvider; | ||
private Picasso mPicasso; | ||
private WeakReference<ArtistListFragment.Callbacks> mCallbacks; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Тут пара вещей, которые мне не нравятся. Можно не исправлять, это просто в качестве совета.
- ArtistListFragment.Callbacks в адаптере. Ты этим привязал адаптер к фрагменту, и адаптер теперь не переиспользовать без изменения.
- WeakReference здесь. Как по мне, это не лучшая практика. Ничему не доверяешь, программа скатывается в пучину проверок, null это или не null. Обнулять вьюхи (а за ними - адаптеры, а потом потеряются ссылки на эти листенеры и всё станет хорошо), по-моему, лучше. Плюс, когда ты делаешь вот так, ответственность за утечки расползается по коду.
P.S. пока писал, придумал ещё минус - если я вдруг захочу адаптеру передать объект, на который нет больше ссылок (анонимный класс, например), всё станет совсем плохо.
…коженные строки переехали в strings.xml
Теперь здесь есть топорный, но рабочий ContentProvider. Без интернета.
Json лежит в ресурсах и парсится через ArtistProviderImpl.
Итак, как всё работает:
Особенности: