标签: recycler-adapter

ViewHolder不是内部类

可以RecyclerView.ViewHolder不用作内部类吗?这样做有什么问题吗?

我已经四处搜索但没有找到任何文件!

android android-viewholder recycler-adapter android-recyclerview

4
推荐指数
1
解决办法
1315
查看次数

RecyclerView Adapter给出错误"RecycleAdapter类型的层次结构不一致"

我正在尝试将新RecyclerView项目添加到我的项目中Fragement.我正在关注Link1的视频教程.当我尝试为其创建适配器时RecyclerView,我开始收到此错误.我正在使用Eclipse Juno.我无法弄清楚问题所在.请帮忙

我的代码:

public class RecycleAdapter extends RecyclerView.Adapter<RecycleAdapter.MyViewHolder> {

private LayoutInflater inflator;
List <Item> data = Collections.EMPTY_LIST;

public RecycleAdapter(Context context, List<Item> data){
    inflator = LayoutInflater.from(context);
}

@Override
public int getItemCount() {
    // TODO Auto-generated method stub
    return data.size();
}


@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int arg1) {
    View view = inflator.inflate(R.layout.row_staggered_new, parent, false);
    MyViewHolder holder = MyViewHolder(view);
    return holder;
}

@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
    Item current = data.get(position); …
Run Code Online (Sandbox Code Playgroud)

eclipse android recycler-adapter android-recyclerview

4
推荐指数
1
解决办法
3842
查看次数

使Recycler视图无效

我有一个与GridLayoutManager一起使用的回收器视图.当用户单击视图项时,视图将使用缩放动画进行动画处理,以显示适配器项的更多详细信息.我有一个按钮来反转这个动画并删除屏幕上的细节.

问题是当显示详细信息视图时,用户仍然可以单击回收器视图并为其他视图设置动画.可以告诉我如何禁用回收者视图?

我试过了 rc_view.setEnabled(false); rc_view.setClickable(false);

我已经遵循了这一点,他们都没有禁用回收者视图.

有人可以帮忙吗?

android recycler-adapter android-recyclerview

4
推荐指数
1
解决办法
5578
查看次数

如何在recyclerView中获取cardView项目的位置?

我为recycler创建了一个适配器类,用于在recyclerview中填充cardview布局.它工作正常,但当我点击recyclerview中的cardView项目时,我需要获得该cardview项目的位置,基于我需要编写一个Intent活动.以及当我从左向右滑动时如何删除该cardview项目. MyAdapter类.

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
    private NavigationItem[] navigationItem;
    private Context mContext;

    public MyAdapter(NavigationItem[] navigationItem) {
        this.navigationItem = navigationItem;
    }

    @Override
    public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View itemLayoutView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.navigation_row_cardview, null);
        ViewHolder viewHolder = new ViewHolder(itemLayoutView);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(MyAdapter.ViewHolder holder, int position) {
        holder.txtViewTitle.setText(navigationItem[position].getTitle());
    }

    @Override
    public int getItemCount() {
        return navigationItem.length;
    }

    public class ViewHolder extends RecyclerView.ViewHolder {
        @InjectView(R.id.hambergerRecyclerView)
        public RelativeLayout recyclerView;
        public TextView txtViewTitle;

        public ViewHolder(final View itemLayoutView) …
Run Code Online (Sandbox Code Playgroud)

android swipe recycler-adapter android-recyclerview

4
推荐指数
1
解决办法
2万
查看次数

如何定义Recycler.Adapter的子类<VH扩展RecylerView.ViewHolder>

我需要定义一个自定义的RecyclerView和RecyclerView.Adapter.RecyclerView没问题,但我不知道如何定义RecyclerView.Adapter的子类,因为它是Generic类型.

这是我的代码,Android Studio显示意外绑定.

public static abstract class Adapter<VH> extends RecyclerView.Adapter<VH extends RecyclerView.ViewHolder>
Run Code Online (Sandbox Code Playgroud)

java android recycler-adapter android-recyclerview

4
推荐指数
1
解决办法
1941
查看次数

ViewHolder布局更新不适用于onBindViewHolder()

设置RecyclerView有一个自定义适配器和自定义ViewHolders.

我知道onCreateViewHolder()RecyclerViewViewHolders用完后回收并需要一个新方法时会调用该方法.所以我只是在那里给布局充气并将其传递给新的布局ViewHolder.

此外,onBindViewHolder()负责在创建或回收ViewHolder新数据后立即填写数据.所以我在那里做的是调用我的方法将数据对象传递给.ViewHolderRecyclerViewholder.setNode()ViewHolder

我看到的行为当活动首次启动时,所有条目都是正确的.但是,当我添加新条目或删除现有条目时,事情开始变得有趣.

  • title TextView始终设置正确
  • 主要布局的背景颜色似乎随意变化,我假设是因为它RecyclerView正在重用旧版面
  • 就像我实现的自定义视图一样,即使我使它失效并传递新的值,这会显着改变它的外观

所以我想知道:onBindViewHolder()一旦视图重用,为什么这些值不会改变?或者,如果我错了,布局随机切换的真正原因是什么?


TaskListAdapter

class TaskListAdapter extends RecyclerView.Adapter<TaskListAdapter.TaskViewHolder> {

private ArrayList<NodeHandler.DbNode> dbNodeList = new ArrayList<>();
...

@Override
public TaskViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.small_task_view, parent, false);
    return new TaskViewHolder(v);
}

@Override
public void onBindViewHolder(TaskViewHolder holder, int position) {
    final NodeHandler.DbNode dbNode = dbNodeList.get(position);
    holder.setNode(dbNode);
    holder.wrapper.findViewById(R.id.card_details).setVisibility(View.GONE); …
Run Code Online (Sandbox Code Playgroud)

android recycler-adapter android-recyclerview

4
推荐指数
1
解决办法
1056
查看次数

ItemTouchHelper notifyItemMoved从到位置不起作用

目前,我在recyclerview中执行拖放项时遇到问题.我正在参考https://github.com/iPaulPro/Android-ItemTouchHelper-Demo 但是当在适配器中执行函数时:

mListBookMark是Object的ArrayList

@Override
public boolean onItemMove(int fromPosition, int toPosition) {
    Collections.swap(mListBookMark, fromPosition, toPosition);
    notifyItemMoved(fromPosition, toPosition);
    return true;
}
Run Code Online (Sandbox Code Playgroud)

当我将项目从位置a拖动到位置b但是当完成拖动回收器视图时没有更改数据.我该怎么办?请给我一些建议!谢谢.

drag-and-drop drag recycler-adapter android-recyclerview

4
推荐指数
1
解决办法
1162
查看次数

是否有一些推荐的方法来为ParseObject创建ID以在RecyclerView中使用?

我正在使用Parse对象ID创建一个哈希码,但是显然这有一些小的爆炸潜力。

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
    private List<MyParseObject> mObjects;

    ...

    @Override
    public long getItemId(int position) {
        return mObjects.get(position).getObjectId().hashCode();
    }
}
Run Code Online (Sandbox Code Playgroud)

android parse-platform recycler-adapter android-recyclerview

4
推荐指数
1
解决办法
270
查看次数

如何将OnClickListener设置为RecyclerView中的两个按钮?

在我的Android应用程序中,我有一个活动来显示RecyclerView,其中每行由TextView和2个按钮组成.就像那样:

ListAdapter布局

好吧,经过互联网的许多解释,我已经制作了这个适配器:

public class ListAdapter extends 
RecyclerView.Adapter<ListAdapter.ViewHolder> {

    private LayoutInflater layoutInflater;
    protected Vector<List> lists;

    public ListAdapter(Context context, Vector lists) {
        layoutInflater = (LayoutInflater) 
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        this.lists = lists;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = layoutInflater.inflate(R.layout.listadapter, null);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        List list = lists.elementAt(position);
        holder.name.setText(list.getName());
        //holder.delete.set HOW DO I GET BUTTON HERE?
    }

    @Override
    public int getItemCount() {
        return lists.size();
    }

    public static class ViewHolder extends RecyclerView.ViewHolder …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-viewholder recycler-adapter android-recyclerview

4
推荐指数
1
解决办法
4478
查看次数

2列的Recycler View水平滚动

到目前为止我已经尝试过了

LinearLayoutManager layoutManager =
        new GridLayoutManager(getActivity(), 2, GridLayoutManager.HORIZONTAL, false);
Run Code Online (Sandbox Code Playgroud)

但它显示2行而不是两列。

如何在回收者视图中以水平滚动显示两个项目?

android recycler-adapter android-recyclerview recyclerview-layout

4
推荐指数
3
解决办法
4937
查看次数