可以RecyclerView.ViewHolder不用作内部类吗?这样做有什么问题吗?
我已经四处搜索但没有找到任何文件!
android android-viewholder recycler-adapter android-recyclerview
我正在尝试将新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) 我有一个与GridLayoutManager一起使用的回收器视图.当用户单击视图项时,视图将使用缩放动画进行动画处理,以显示适配器项的更多详细信息.我有一个按钮来反转这个动画并删除屏幕上的细节.
问题是当显示详细信息视图时,用户仍然可以单击回收器视图并为其他视图设置动画.可以告诉我如何禁用回收者视图?
我试过了 rc_view.setEnabled(false);
rc_view.setClickable(false);
我已经遵循了这一点,他们都没有禁用回收者视图.
有人可以帮忙吗?
我为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) 我需要定义一个自定义的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) 设置我RecyclerView有一个自定义适配器和自定义ViewHolders.
我知道onCreateViewHolder()当RecyclerViewViewHolders用完后回收并需要一个新方法时会调用该方法.所以我只是在那里给布局充气并将其传递给新的布局ViewHolder.
此外,onBindViewHolder()负责在创建或回收ViewHolder新数据后立即填写数据.所以我在那里做的是调用我的方法将数据对象传递给.ViewHolderRecyclerViewholder.setNode()ViewHolder
我看到的行为当活动首次启动时,所有条目都是正确的.但是,当我添加新条目或删除现有条目时,事情开始变得有趣.
title TextView始终设置正确RecyclerView正在重用旧版面所以我想知道:onBindViewHolder()一旦视图重用,为什么这些值不会改变?或者,如果我错了,布局随机切换的真正原因是什么?
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) 目前,我在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但是当完成拖动回收器视图时没有更改数据.我该怎么办?请给我一些建议!谢谢.
我正在使用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
在我的Android应用程序中,我有一个活动来显示RecyclerView,其中每行由TextView和2个按钮组成.就像那样:
好吧,经过互联网的许多解释,我已经制作了这个适配器:
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
到目前为止我已经尝试过了
LinearLayoutManager layoutManager =
new GridLayoutManager(getActivity(), 2, GridLayoutManager.HORIZONTAL, false);
Run Code Online (Sandbox Code Playgroud)
但它显示2行而不是两列。
如何在回收者视图中以水平滚动显示两个项目?
android recycler-adapter android-recyclerview recyclerview-layout