Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取recyclerview android的onCreateViewholder中的当前位置_Android_Listview_Android Recyclerview - Fatal编程技术网

获取recyclerview android的onCreateViewholder中的当前位置

获取recyclerview android的onCreateViewholder中的当前位置,android,listview,android-recyclerview,Android,Listview,Android Recyclerview,我的代码如下: @Override public CustomRatingHolder onCreateViewHolder(ViewGroup viewGroup, int i) { View view = LayoutInflater.from(viewGroup.getContext()).inflate( R.layout.custom_rating_lyt, null); CustomRatingReviews ratingObj = (nul

我的代码如下:

@Override
public CustomRatingHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
    View view = LayoutInflater.from(viewGroup.getContext()).inflate(
            R.layout.custom_rating_lyt, null);

    CustomRatingReviews ratingObj = (null != mRatingLst && position < mRatingLst.size()) ?
            mRatingLst.get(position) : null;

    CustomRatingHolder viewHolder = new CustomRatingHolder(mAdapContext, ratingObj, view);
    position++;
    return viewHolder;
}
@覆盖
公共自定义持有者onCreateViewHolder(视图组视图组,int i){
View=LayoutFlater.from(viewGroup.getContext())。充气(
R.layout.custom\u rating\u lyt,空);
CustomRatingReviews ratingObj=(null!=mRatingLst&&position
我想要回收器适配器onCreateViewHolder中的当前位置。让任何人帮我解决这个问题。提前谢谢。

我想您需要:

getAdapterPosition();

不确定你期望实现什么。为集合中的每个对象调用一次onCreateViewHolder,以便绑定必要的布局并查找所有视图。您可以根据整数膨胀不同的布局并绑定不同的ViewHolder:
onCreateViewHolder(ViewGroup父级,int-viewType)

如果有不同的视图类型,则需要重写将随项目位置调用的getItemViewType方法,以便确定所需的视图类型。此方法返回将在onCreateViewHolder中接收的int

下面是一个很好的例子:

@Override
public int getItemViewType(int position) {
    final Object dataObj = mDataSet.get(position);

    if (dataObj instanceof String) {
        return 0;
    }

    if (dataObj instanceof User) {
        return 1;
    }
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    switch(viewType) {
        case 0:
        return new StringViewHolder(...);

        case 1:
        return new UserViewHolder(...); 
    }
}
我在代码中看到,您正在ViewHolder的构造函数中发送数据。这与此类的目的背道而驰,因为对象类型只有一个ViewHolder实例,并且它只需要保存布局视图信息,因此不需要在每次需要绑定对象时都查找视图。实际上,您需要使用onBindViewHolder来绑定对象,例如:

public void onBindViewHolder(UsersGroupsAdapter.ViewHolder holder, int position) {
    // or something similar
    holder.bind(mData.get(position));
}

希望这有帮助。

getAdapterPosition是RecyclerView.ViewHolder抽象类的方法,而不是RecyclerView.Adapter类的方法。