Java 回收器视图不会在我的屏幕上填充任何数据

Java 回收器视图不会在我的屏幕上填充任何数据,java,android,firebase-realtime-database,android-recyclerview,android-cardview,Java,Android,Firebase Realtime Database,Android Recyclerview,Android Cardview,我的主要活动显示一个空的RecyclerView。MyCardView不显示 数据存储在Firebase数据库中,但由于某些原因未显示 我也搜索过网络,但没有任何帮助。我尝试了web上列出的所有内容以及堆栈溢出 MainActivity.java public class MainActivity1 extends AppCompatActivity { private RecyclerView mQuestionList; private CardView mCardVieww; p

我的主要活动显示一个空的
RecyclerView
。My
CardView
不显示

数据存储在Firebase数据库中,但由于某些原因未显示

我也搜索过网络,但没有任何帮助。我尝试了web上列出的所有内容以及堆栈溢出

MainActivity.java

public class MainActivity1 extends   AppCompatActivity {

private RecyclerView mQuestionList;

private CardView mCardVieww;

private DatabaseReference mDatabase;
private FirebaseAuth mAuth;
private FirebaseAuth.AuthStateListener mAuthListener;
private DatabaseReference mDatabaseUsers;
private LinearLayoutManager layoutManager;

private DatabaseReference mDatabaseCurrentUsers;

private  DatabaseReference mDatabaseLike;

private boolean mProcessLike = false;

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

    mAuth=FirebaseAuth.getInstance();

    mAuthListener=new FirebaseAuth.AuthStateListener() {
        @Override
        public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {

            if (firebaseAuth.getCurrentUser()== null){

                Intent loginIntent=new Intent(MainActivity1.this,LoginActivity.class);
                loginIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(loginIntent);
            }
        }
    };

    mDatabase= FirebaseDatabase.getInstance().getReference().child("Question");
    mDatabaseUsers=FirebaseDatabase.getInstance().getReference().child("Users");
    mDatabaseLike=FirebaseDatabase.getInstance().getReference().child("Likes");

    mDatabaseUsers.keepSynced(true);
    mDatabaseLike.keepSynced(true);
    mDatabase.keepSynced(true);


    mQuestionList=(RecyclerView) findViewById(R.id.question_list);
    layoutManager=new LinearLayoutManager(this);
    layoutManager.setReverseLayout(true);
    layoutManager.setStackFromEnd(true);

    mQuestionList.setHasFixedSize(true);
    mQuestionList.setLayoutManager(layoutManager);


    checkUserExist();
}

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

    mAuth.addAuthStateListener(mAuthListener);


   FirebaseRecyclerAdapter <Question,QuestionViewHolder> fireRecyclerAdapter = new FirebaseRecyclerAdapter <Question,QuestionViewHolder>(
            Question.class,
           R.layout.question,
            QuestionViewHolder.class,

            mDatabase
    ){


        @Override
        protected void populateViewHolder(QuestionViewHolder viewHolder,Question model, int position){

            final String post_key = getRef(position).getKey()

            viewHolder.setTitle(model.getTitle());
            viewHolder.setDesc(model.getDesc());
            viewHolder.setImage(getApplicationContext(),model.getImage());
            viewHolder.setUsername(model.getUsername());

            viewHolder.setLikeBtn(post_key);

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

                   // Toast.makeText(MainActivity1.this,post_key,Toast.LENGTH_LONG).show();

                    Intent singleQuestionIntent=new Intent(MainActivity1.this,QuestionSingleActivity.class);
                    singleQuestionIntent.putExtra("question_id",post_key);
                    startActivity(singleQuestionIntent);
                }
            });

            viewHolder.mLikeBtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    mProcessLike = true;

                        mDatabaseLike.addValueEventListener(new ValueEventListener() {

                            @Override
                                public void onDataChange(DataSnapshot dataSnapshot) {
                                    if (mProcessLike) {

                                    if (dataSnapshot.child(post_key).hasChild(mAuth.getCurrentUser().getUid())) {

                                        mDatabaseLike.child(post_key).child(mAuth.getCurrentUser().getUid()).removeValue();
                                        mProcessLike = false;

                                    } else {

                                        mDatabaseLike.child(post_key).child(mAuth.getCurrentUser().getUid()).setValue("RandomValue");
                                        mProcessLike = false;
                                    }
                                }
                            }

                            @Override
                            public void onCancelled(DatabaseError databaseError) {

                            }
                        });
                    }

            });
        }


    };

    mQuestionList.setHasFixedSize(true);
    mQuestionList.setLayoutManager(layoutManager);

    mQuestionList.setAdapter(fireRecyclerAdapter);

    }
   //cgeck user exist or not
    private void checkUserExist() {

    if (mAuth.getCurrentUser() != null) {

        final String user_id = mAuth.getCurrentUser().getUid();

        mDatabaseUsers.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                if (!dataSnapshot.hasChild(user_id)) {

                    Intent setupIntent = new Intent(MainActivity1.this, SetupActivity.class);
                    setupIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    startActivity(setupIntent);
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });
     }
    }



    public  static class QuestionViewHolder extends RecyclerView.ViewHolder{

    View mView;

    ImageButton mLikeBtn;

    DatabaseReference mDatabaseLike;
    FirebaseAuth mAuth;

    public QuestionViewHolder(View itemView) {

        super(itemView);

        mView=itemView;

        mLikeBtn=(ImageButton) mView.findViewById(R.id.likeBtn);

        mDatabaseLike= FirebaseDatabase.getInstance().getReference().child("Likes");

        mAuth=FirebaseAuth.getInstance();
        mDatabaseLike.keepSynced(true);
    }

    public void setLikeBtn(final String post_key){

        mDatabaseLike.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                if (dataSnapshot.child(post_key).hasChild(mAuth.getCurrentUser().getUid())){

                    mLikeBtn.setImageResource(R.mipmap.thumb_grey);
                }else{
                    mLikeBtn.setImageResource(R.mipmap.thumb_grey);
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });
    }

    public void setTitle(String title){
        TextView post_title=(TextView) mView.findViewById(R.id.post_title);
        post_title.setText(title);

    }

    public void setDesc(String desc){
        TextView post_desc=(TextView) mView.findViewById(R.id.post_desc);
        post_desc.setText(desc);
    }

    public void setUsername(String username){
        TextView post_username=(TextView) mView.findViewById(R.id.post_username);
        post_username.setText(username);
    }

  public void setImage(final Context ctx, final String image){

        final ImageView post_image=(ImageView) mView.findViewById(R.id.post_image);
       //Picasso.with(ctx).load(image).into(post_image);

        Picasso.with(ctx).load(image).networkPolicy(NetworkPolicy.OFFLINE).into(post_image, new Callback() {
            @Override
            public void onSuccess() {

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

            }
        });
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main_menu,menu);
    return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if(item.getItemId()==R.id.action_add){

        startActivity(new Intent(MainActivity1.this,PostActivity.class));
    }

    if(item.getItemId()==R.id.action_logout){

        logout();
    }

    if(item.getItemId()==R.id.action_Qp){

        startActivity(new Intent(MainActivity1.this,MainActivity2.class));
    }

    return super.onOptionsItemSelected(item);
}

private void logout() {
    mAuth.signOut();
}
}
activity_main1.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout 

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.akhil.rtmnuforum.MainActivity1">

<android.support.v7.widget.RecyclerView

 android:id="@+id/question_list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background">
</android.support.v7.widget.RecyclerView>

 </LinearLayout>

question.xml

    <?xml version="1.0" encoding="utf-8"?>

 <android.support.v7.widget.CardView

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/cardview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:visibility="visible"
tools:context="com.example.akhil.rtmnuforum.MainActivity1">


 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/post_image"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop"
        android:src="@mipmap/add_btn" />

    <TextView
        android:id="@+id/post_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="15dp"
        android:text="Post Title Goes here"
        android:textSize="16dp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/post_desc"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="15dp"
        android:paddingLeft="15dp"
        android:paddingRight="15dp"
        android:text="Question Description Goes here" />

    <TextView
        android:id="@+id/post_username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="15dp"
        android:paddingLeft="15dp"
        android:paddingRight="15dp"
        android:text="username"
        android:textSize="12dp"
        android:textStyle="bold" />

    <ImageButton
        android:id="@+id/likeBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:background="@color/cardview_light_background"
        app:srcCompat="@mipmap/ic_thumb_up_black_24dp" />
</LinearLayout>

</android.support.v7.widget.CardView>


设置适配器后,尝试调用以下命令:
fireRecyclerAdapter.notifyDataSetChanged()
尝试将
mQuestionList.setHasFixedSize(true)
更改为
false
,它帮助了很多人,但以前它对我不起作用
    <?xml version="1.0" encoding="utf-8"?>

 <android.support.v7.widget.CardView

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/cardview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:visibility="visible"
tools:context="com.example.akhil.rtmnuforum.MainActivity1">


 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/post_image"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop"
        android:src="@mipmap/add_btn" />

    <TextView
        android:id="@+id/post_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="15dp"
        android:text="Post Title Goes here"
        android:textSize="16dp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/post_desc"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="15dp"
        android:paddingLeft="15dp"
        android:paddingRight="15dp"
        android:text="Question Description Goes here" />

    <TextView
        android:id="@+id/post_username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="15dp"
        android:paddingLeft="15dp"
        android:paddingRight="15dp"
        android:text="username"
        android:textSize="12dp"
        android:textStyle="bold" />

    <ImageButton
        android:id="@+id/likeBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:background="@color/cardview_light_background"
        app:srcCompat="@mipmap/ic_thumb_up_black_24dp" />
</LinearLayout>

</android.support.v7.widget.CardView>