При использовании android.support.v7.widget.RecyclerView.ViewHolder в нашем адаптере, требуется ли теги просмотра, как мы это делали ранее. Или библиотека делает это автоматически в конце?android.support.v7.widget.RecyclerView.ViewHolder
ответ
Вам не требуется view.setTag (viewHolder), просто привяжите данные в onBindViewHolder (держатель ViewHolder, позиция int). PS: Вы должны отредактировать название своего вопроса, чтобы больше описать вашу проблему.
Okay Thanks. Таким образом, тегирование управляется внутренне правильно. – Vineeth
Вам больше не нужно отмечать View с помощью ViewHolder, если вы также расширяете RecyclerView.Adapter
в своем адаптере. Адаптер RecyclerView требует, чтобы вы реализовали несколько методов, которые помогут вам создать и привязать держатель вида.
onCreateViewHolder(ViewGroup viewGroup, int i)
в котором вы раздувать View и создать ViewHolder - конструктор RecyclerView.ViewHolder требует передачи в представлении.onBindViewHolder(ViewHolder holder, int i)
где вы выполняете все операции, необходимые для привязки данных к держателюgetItemCount()
вернуть количество элементов в вашем RecyclerView
Адаптер должен выглядеть примерно так:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
...
@Override
public MyViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
// TODO: inflate your view and create viewholder, most likely looks like this though
View v = LayoutInflater.from(viewGroup.getContext()).inflate(
R.layout.recycler_view_item,
viewGroup,
false);
MyViewHolder vh = new MyViewHolder(v);
return vh;
}
@Override
public void onBindViewHolder(MyViewHolder viewHolder, int i) {
// TODO: all your bind operations
}
@Override
public int getItemCount() {
// TODO: return total item count of your views
}
public static class MyViewHolder extends RecyclerView.ViewHolder {
// TODO: whatever views you need to bind
public TextView mTextView;
public ImageView mImageView;
public MyViewHolder(View v) {
super(v); // done this way instead of view tagging
mTextView = (TextView) v.findViewById(R.id.textview);
mImageView = (ImageView) v.findViewById(R.id.imageview);
}
}
}
Не могу этого сделать! Вы получите сообщение об ошибке: 'viewHolder - абстрактный; невозможно создать экземпляр ' –
, вы, вероятно, создаете экземпляр' RecyclerView.ViewHolder', а не пользовательский ViewHolder, объявленный во внутреннем статическом классе. Я отредактирую пример, чтобы сделать это более понятным. – ekchang
- 1. android.support.v7.app.AppCompatDelegateImplV14
- 2. Java.lang.ClassCastException: Android.support.v7.widget.ContentFrameLayout не может быть добавлен в Android.support.v7.widget.ContentFrameLayout
- 3. набор android.support.v7.widget.Toolbar изображения
- 4. java.lang.NoSuchFieldError: android.support.v7.appcompat
- 5. java.lang.NoSuchFieldError: android.support.v7.appcompat.R $ styleable.ActionBarWindow
- 6. android.support.v7.app.AppCompatDelegateImplV14 error
- 7. ошибка раздувания android.support.v7.widget.Toolbar
- 8. Скрыть android.support.v7.widget.Toolbar программно
- 9. android.support.v7.widget.SearchView setQueryHint?
- 10. java.lang.NoSuchFieldError: android.support.v7.appcompat.R $ styleable.Theme_windowNoTitle
- 11. android.support.v7 jar файл несуществующий
- 12. java.lang.NoClassDefFoundError: android.support.v7.internal.widget.TintManager
- 13. ClassCastException: android.support.v7.widget.ShareActionProvider
- 14. Недостаточно памяти: android.support.v7.app.AppCompatActivity.onCreate
- 15. java.lang.NoClassDefFoundError android.support.v7.view.menu.MenuBuilder
- 16. Canot решить android.support.v7.internal.widget.TintImageView
- 17. java.lang.NoClassDefFoundError: android.support.v7.internal.view.menu.MenuBuilder
- 18. Как стиль android.support.v7.widget.SearchView
- 19. android.support.v7.app.WindowDecorActionBar не установлен
- 20. Изменить цвет android.support.v7.widget.SearchView
- 21. ClassCastException: android.support.v7.widget
- 22. Obfuscate android.support.v7.widget.GridLayout issue
- 23. android.support.v7.RecyclerView вызывает ClassNotFoundException
- 24. NPE @ android.support.v7.widget.RecyclerView $ LayoutManager.detachViewInternal
- 25. android.support.v7.widget.cardview не найден
- 26. NoClassDefFoundError: android.support.v7.app.ActionBarActivity
- 27. java.lang.NoClassDefFoundError: android.support.v7.widget.TintManager
- 28. NullPointerException with android.support.v7.widget.Toolbar
- 29. java.lang.NoClassDefFoundError: android.support.v7.appcompat.R $ styleable
- 30. выцветания android.support.v7.widget.Toolbar
'onBindViewHolder' будет выполнять привязку, поэтому не нужно тегировать – Xcihnegn