خرید بک لینک

Vote count: 0

I have switched from a ListView to a RecyclerView, and I use data from Firebase to dynamically add RecyclerView items. However, I am unable to successfully generate a RecyclerView.

My listener, I add to the mCommentArrayList here and then later pull from this data in my RecyclerView Adapter:

  mUpdateRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            setImage(dataSnapshot);
            setQuestion(dataSnapshot);
            createInitialCommentIDArray(dataSnapshot);
            mNumberOfCommentsAtPoll = (int) dataSnapshot.child(COMMENTS_LABEL).getChildrenCount();
            for (int i = 0; i < mNumberOfCommentsAtPoll; i++) {
                String commentID = (String) dataSnapshot.child(COMMENTS_LABEL).child(mCommentIDArrayList.get(i)).child("COMMENT").getValue();
                Log.v("COMMENT_ID", "The comment ID is " + commentID);
                String userID = (String) dataSnapshot.child(COMMENTS_LABEL).child(mCommentIDArrayList.get(i)).child("USER_ID").getValue();
                Log.v("USER_ID", "The user ID is " + userID);
                mCommentArrayList.add(0 , new Comments(mUserAvatar, userID, commentID));
                mCommentAdapter.notifyDataSetChanged();
            }

        }

        @Override
        public void onCancelled(FirebaseError firebaseError) {

        }
    });

Here is my RecyclerView Adapter:

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

    // Provide a reference to the views for each data item
    // Complex data items may need more than one view per item, and
    // you provide access to all the views for a data item in a view holder
    public class ViewHolder extends RecyclerView.ViewHolder {
        // each data item is just a string in this case
        protected ImageView userAvatar;
        protected TextView userID;
        protected TextView userComment;

        public ViewHolder(View v) {
            super(v);
            userAvatar = (ImageView) findViewById(R.id.profile_image_avatar);
            userID = (TextView) findViewById(R.id.user_ID);
            userComment = (TextView) findViewById(R.id.user_comment);
        }
    }

    // Provide a suitable constructor (depends on the kind of dataset)
    public MyAdapter(ArrayList<Comments> myDataset) {
        mCommentArrayList = myDataset;
    }

    // Create new views (invoked by the layout manager)
    @Override
    public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
                                                   int viewType) {
        // create a new view
        View v = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.individual_comment, parent, false);
        // set the view's size, margins, paddings and layout parameters

        retu new ViewHolder(v);
    }

    // Replace the contents of a view (invoked by the layout manager)

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        holder.userComment.setText(mCommentArrayList.get(position).getUserComment());
        holder.userID.setText(mCommentArrayList.get(position).getUserID());
    }

    // Retu the size of your dataset (invoked by the layout manager)
    @Override
    public int getItemCount() {
        retu mNumberOfCommentsAtPoll;
    }
}

I am receiving an IndexOutOfBoundsException, which is odd since I originally add items to mCommentArrayList:

java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
                                                                                  at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
                                                                                  at java.util.ArrayList.get(ArrayList.java:308)
                                                                                  at com.troychuinard.fanpolls.Discussion_Activity$MyAdapter.onBindViewHolder(Discussion_Activity.java:276)
                                                                                  at com.troychuinard.fanpolls.Discussion_Activity$MyAdapter.onBindViewHolder(Discussion_Activity.java:236)
                                                                                  at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:5471)
                                                                                  at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:5504)
                                                                                  at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4741)
                                                                                  at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4617)
                                                                                  at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1994)
                                                                                  at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1390)
                                                                                  at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1353)
                                                                                  at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:574)
                                                                                  at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3028)
                                                                                  at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:2625)
                                                                                  at android.view.View.measure(View.java:15848)
                                                                                  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5012)
                                                                                  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
                                                                                  at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
                                                                                  at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
                                                                                  at android.view.View.measure(View.java:15848)
                                                                                  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5012)
                                                                                  at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:668)
                                                                                  at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:735)
                                                                                  at android.view.View.measure(View.java:15848)
                                                                                  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5012)
                                                                                  at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
                                                                                  at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)
                                                                                  at android.view.View.measure(View.java:15848)
                                                                                  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5012)
                                                                                  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
                                                                                  at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
                                                                                  at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
                                                                                  at android.view.View.measure(View.java:15848)
                                                                                  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5012)
                                                                                  at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
                                                                                  at android.view.View.measure(View.java:15848)
                                                                                  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5012)
                                                                                  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
                                                                                  at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
                                                                                  at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
                                                                                  at android.view.View.measure(View.java:15848)
                                                                                  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5012)
                                                                                  at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
                                                                                  at com.android.inteal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2189)
                                                                                  at android.view.View.measure(View.java:15848)
                                                                                  at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1905)
                                                                                  at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1104)
                                                                                  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1284)
                                                                                  at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1004)
                                                                                  at android.view.ViewRootImpl$TraversalRuable.run(ViewRootImpl.java:5481)
                                                                                  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
                                                                                  at android.view.Choreographer.doCallbacks(Choreographer.java:562)
                                                                                  at android.view.Choreographer.doFrame(Choreographer.java:532)
                                                                                at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735

asked 2 mins ago

برچسب: نویسنده: استخدام کار تاريخ: سه شنبه 4 خرداد 1395 ساعت: 9:10

صفحه بندی