FirebaseRecyclerView 不执行方法

FirebaseRecyclerView doesn't execute methods

我真的已经阅读了同一问题的所有示例,但没有任何帮助我认为在另一个地方的某个地方犯了错误。所以问题是 recyclerview 的方法不执行并且列表不填充数据。 我从这个地方拿来的例子 https://github.com/firebase/FirebaseUI-Android/blob/master/database/README.md

我也查看了这个页面 https://github.com/happysingh23828/TheHappyChat/blob/master/app/src/main/java/happysingh/thehappychat/AllUsers.java 这是 class

的代码
public class UsersActivity extends AppCompatActivity {

    //Layout
    private Toolbar mToolbar;
    private RecyclerView mUserList;

    //Firebase
    private DatabaseReference mUsersDatabase;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_users);

        //Layour
        mToolbar = (Toolbar) findViewById(R.id.users_toolbar);
        setSupportActionBar(mToolbar);
        getSupportActionBar().setTitle("All Users");
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        mUserList = (RecyclerView) findViewById(R.id.users_list);
//        mUserList.setHasFixedSize(true);
        mUserList.setLayoutManager(new LinearLayoutManager(this));

        //Firebase
        mUsersDatabase = FirebaseDatabase.getInstance().getReference().child("Users");
    }

    @Override
    protected void onStart() {
        super.onStart();

        Log.v("=====> IN ON START", "in onstart");

        Query query = mUsersDatabase
                .limitToLast(20);

        FirebaseRecyclerOptions<Users> options =
                new FirebaseRecyclerOptions.Builder<Users>()
                        .setQuery(query, Users.class)
                        .build();

        //Pass model + viewholder
        //Pass model / layout of item / ViewHolder / reference to Databace place
        FirebaseRecyclerAdapter firebaseRecyclerAdapter = new FirebaseRecyclerAdapter
                <Users, UsersViewHolder>(options) {
            @Override
            protected void onBindViewHolder(@NonNull UsersViewHolder holder, int position, @NonNull Users model) {

                String s = model.getName().toString();
                Log.v("=====> ", " " + s);
                holder.setName(model.getName());
                holder.setStatus(model.getStatus());
                holder.setImage(model.getImage());
            }

            @Override
            public UsersViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                View view = LayoutInflater.from(parent.getContext())
                        .inflate(R.layout.user_item, parent, false);
                Log.v("=====> ", "Creating View Holder ");

                return new UsersViewHolder(view);
            }
        };

        mUserList.setAdapter(firebaseRecyclerAdapter);
        firebaseRecyclerAdapter.startListening();

    }

    public static class UsersViewHolder extends RecyclerView.ViewHolder {

        View view;
        Context c;

        public UsersViewHolder(View itemView) {
            super(itemView);
            view = itemView;
        }

        public void setName(String name) {

            TextView txtUserName = (TextView) view.findViewById(R.id.user_single_name);
            txtUserName.setText(name);


        }

        public void setStatus(String status) {
            TextView txtstatus = (TextView) view.findViewById(R.id.user_single_status);
            txtstatus.setText(status);
        }

        public void setImage(final String image) {

            final CircleImageView img = (CircleImageView) view.findViewById(R.id.user_single_img);;

            //  Picasso.with(c).load(image).into(img);

            Picasso.with(c).load(image).networkPolicy(NetworkPolicy.OFFLINE).into(img, new Callback() {
                @Override
                public void onSuccess() {
                    // Offline Download
                }

                @Override
                public void onError() {
                    Picasso.with(c).load(image).into(img);
                }
            });

        }

        public View getView() {
            return view;

        }
    }
}

要解决这个问题,请将 onStart() 方法中的所有代码移到 onCreate() 方法中,除了这两行代码:

super.onStart();
firebaseRecyclerAdapter.startListening();

并从您的 UsersViewHolder class 定义中删除 static 关键字。只能是:

public class UsersViewHolder extends RecyclerView.ViewHolder {}