cymcsg / UltimateRecyclerView

A RecyclerView(advanced and flexible version of ListView in Android) with refreshing,loading more,animation and many other features.
Apache License 2.0
7.22k stars 1.43k forks source link

i have three item data, but only one time oncreateivewholder called, what's wrong? #347

Closed songsh closed 8 years ago

songsh commented 8 years ago

so on.

jjhesk commented 8 years ago

where is the code?

songsh commented 8 years ago
@Override
    public UltimateRecyclerviewViewHolder getViewHolder(View view) {
        return new UltimateRecyclerviewViewHolder(view);
    }

    @Override
    public UltimateRecyclerviewViewHolder onCreateViewHolder(ViewGroup parent) {
        final Context context = parent.getContext();

        View view = LayoutInflater.from(context).inflate(
                R.layout.fm_student_item, parent, false);
        final StudentViewHolder viewHolder = new StudentViewHolder(view);
        SwipeLayout swipeLayout = viewHolder.swipeLayout;
        swipeLayout.setDragEdge(SwipeLayout.DragEdge.Right);
        swipeLayout.setShowMode(SwipeLayout.ShowMode.PullOut);

//        viewHolder.deleteButton.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                f.delete_homework(mData.get(viewHolder.getAdapterPosition()).getHomeworkid(), viewHolder.getAdapterPosition());
//            }
//        });
//
//        viewHolder.l1.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                f.goToHomework(viewHolder.getAdapterPosition());
//            }
//
//        });

        return viewHolder;
    }

    @Override
    public void onBindViewHolder(UltimateRecyclerviewViewHolder holder, int position) {
//        super.onBindViewHolder(holder, position);
        position -= 1;
        Log.i("StudentAdapter", "onBindViewHolder-----------");
        final int pos = position;
        if (position > -1 && mData.size() > position) {
            Student item = mData.get(position);
            Picasso.with(mContext)
                    .load(mData.get(position).getPhoto())
                    .placeholder(R.drawable.default_icon)
                    .error(R.drawable.default_icon)
                    .fit()
                    .centerInside()
                    .into(((StudentViewHolder) holder).img);
            ((StudentViewHolder) holder).t1.setText(mData.get(position).getNickname());
            ((StudentViewHolder) holder).t4.setText(mData.get(position).getLocation_names().getLocation());

            if(item.isJoined()){
                ((StudentViewHolder) holder).tv_agree.setVisibility(View.GONE);
                ((StudentViewHolder) holder).tv_disagree.setVisibility(View.GONE);
                ((StudentViewHolder) holder).t2.setText(mContext.getString(R.string.student_joined_tips));
            }else{
                ((StudentViewHolder) holder).tv_agree.setVisibility(View.VISIBLE);
                ((StudentViewHolder) holder).tv_disagree.setVisibility(View.VISIBLE);
                ((StudentViewHolder) holder).t2.setText(mContext.getString(R.string.student_nojoin_tips));
            }

        }
    }

    public String getCurrentTime() {
        long tmp = System.currentTimeMillis();
        Date date = new Date(tmp);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//add Locale.getDefault()
        return sdf.format(date);
    }

    @Override
    public RecyclerView.ViewHolder onCreateHeaderViewHolder(ViewGroup parent) {
        return null;
    }

    @Override
    public void onBindHeaderViewHolder(RecyclerView.ViewHolder holder, int position) {

    }

    @Override
    public int getItemCount() {
        if(mData.size()>0){
            return mData.size() + 1;
        }else{
            return 0;
        }
    }

    @Override
    public int getAdapterItemCount() {
        if(mData.size()>0){
            return mData.size() + 1;
        }else{
            return 0;
        }
    }

    @Override
    public long generateHeaderId(int position) {
        return 0;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }
songsh commented 8 years ago

i use studio1.5, android 23,the app is not right, my roomate use studio1.3, the app is right,the bug is associated with the run time.

jjhesk commented 8 years ago

mine is using 1.5.1

0LongLongAgo commented 8 years ago

How to solve this problem? change the different version of androidstudio?

jjhesk commented 8 years ago

try to use 2.1.0 on the latest buildtool