更改从Firebase PopulateView检索的RecyclerView中项目的排列顺序

问题描述 投票:2回答:1

我正在创建一个聊天应用程序,并且在从Firebase populateView方法检索的RecyclerView中交换项目的订单列表时遇到问题。这是我的聊天列表活动

    mAdappyter = new FirebaseRecyclerAdapter<User, CViewHolder>(User.class,R.layout.chatlist,CViewHolder.class,mDatabaseReference) {
        @Override
        protected void populateViewHolder(final CViewHolder viewHolder, User model, final int position) {



            viewHolder.mGroupName.setText(model.getmName());








            mImagesReferences = FirebaseDatabase.getInstance().getReference().child("UPhoto").child(model.getmName());
            mLast = FirebaseDatabase.getInstance().getReference().child("Last").child(model.getmName());
            mTime = FirebaseDatabase.getInstance().getReference().child("TIME").child(model.getmName());





            mImagesReferences.addChildEventListener(new ChildEventListener() {
                @Override
                public void onChildAdded(DataSnapshot dataSnapshot, String s) {

                    String url = dataSnapshot.getValue().toString();

                    Picasso.with(getApplicationContext()).load(url).into(viewHolder.mPhoto);


                }

                @Override
                public void onChildChanged(DataSnapshot dataSnapshot, String s) {

                }

                @Override
                public void onChildRemoved(DataSnapshot dataSnapshot) {

                }

                @Override
                public void onChildMoved(DataSnapshot dataSnapshot, String s) {

                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });



            mTime.addChildEventListener(new ChildEventListener() {
                @Override
                public void onChildAdded(DataSnapshot dataSnapshot, String s) {


                    String lala = dataSnapshot.getValue().toString();

                    viewHolder.mLastTime.setText(lala);



                }

                @Override
                public void onChildChanged(DataSnapshot dataSnapshot, String s) {

                }

                @Override
                public void onChildRemoved(DataSnapshot dataSnapshot) {

                }

                @Override
                public void onChildMoved(DataSnapshot dataSnapshot, String s) {

                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });




            mLast.addChildEventListener(new ChildEventListener() {
                @Override
                public void onChildAdded(DataSnapshot dataSnapshot, String s) {

                    //  Toast.makeText(getApplicationContext(),dataSnapshot.toString(),Toast.LENGTH_LONG).show();

                    String time = dataSnapshot.getValue().toString();
                    // String last = dataSnapshot.child("mUser").getValue().toString();

                    viewHolder.mMessage.setText(time);





                }

                @Override
                public void onChildChanged(DataSnapshot dataSnapshot, String s) {



                }

                @Override
                public void onChildRemoved(DataSnapshot dataSnapshot) {

                }

                @Override
                public void onChildMoved(DataSnapshot dataSnapshot, String s) {

                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });



            viewHolder.mView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {



                   String naam = viewHolder.mGroupName.getText().toString();
                    Intent intent = new Intent(getApplicationContext(),MainActivity.class);
                    intent.putExtra("messy",naam);
                    startActivity(intent);






                   // Toast.makeText(getApplication(),""+position,Toast.LENGTH_SHORT).show();



                }
            });



        }
    };



    mListView.setAdapter(mAdappyter);
    mAdappyterbitch.notifyDataSetChanged();

所以这就是我填充RecyclerView的方式,并且无法使用]交换其中的元素>

     Collections.swap(List,2,3);

功能,因为我在FirebaseRecyclerAdapter中没有列表来使用和交换项目,当我使用仅传递一个元素的ArrayAdapter和Arraylist时,它可以正常工作。

我正在创建一个聊天应用程序,并且在从Firebase populateView方法检索的RecyclerView中交换项目的订单列表时遇到问题,这是我的聊天列表活动...

java android firebase collections android-recyclerview
1个回答
0
投票

您可以使用getSnapshots获取列表项。这返回FirebaseArray。如果要在Collections.swap中使用,可以使用:

© www.soinside.com 2019 - 2024. All rights reserved.