当前位置: 首页 > 知识库问答 >
问题:

RecyclerView未从firebase数据库提取数据

章誉
2023-03-14

我正在做一个应用程序,我必须从firebase获取一些数据,并在RecyclerView中显示。但textView字段仍然为空,并且不显示任何数据。下面是db结构。我想获取“AlphabetMatching”下的节点的数据,但未能获取。回收器显示了我为行所做的布局,但没有数据库中的数据。

activity班:

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



    mlinearLayoutManager= new LinearLayoutManager(this);
    //mlinearLayoutManager.setReverseLayout(true);
   // mlinearLayoutManager.setStackFromEnd(true);


    recyclerView=findViewById(R.id.am_recycler);



    db_ref= FirebaseDatabase.getInstance().getReference("Performance");
    user= FirebaseAuth.getInstance().getCurrentUser();
    userID=user.getUid();

    alphabetMatchingPerfRef= db_ref.child(userID).child("AlphabetMatching");


    //Toast.makeText(this, alphabetMatchingPerfRef.toString(), Toast.LENGTH_SHORT).show();



    showData();




}

public void showData()
{

    options=new FirebaseRecyclerOptions.Builder<amaw>().setQuery(alphabetMatchingPerfRef,amaw.class).build();

    firebaseRecyclerAdapter= new FirebaseRecyclerAdapter<amaw, ViewHolder>(options) {
        @Override
        protected void onBindViewHolder(@NonNull ViewHolder holder, int position, @NonNull amaw model) {
            holder.setDetails(getApplicationContext(),model.getDate(),model.getTime(),model.getScore());


        }

        @NonNull
        @Override
        public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

            View itemView= LayoutInflater.from(parent.getContext()).inflate(R.layout.performancelayout,parent,false);

            ViewHolder holder = new ViewHolder(itemView);
            return holder;
        }
    };

    recyclerView.setLayoutManager(mlinearLayoutManager);
    firebaseRecyclerAdapter.startListening();
    recyclerView.setAdapter(firebaseRecyclerAdapter);
}

VIEWHOLDER类:

public class ViewHolder extends RecyclerView.ViewHolder {

View mView;



public ViewHolder(@NonNull View itemView) {
    super(itemView);


    mView=itemView;

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

        }
    });


}

public void setDetails(Context ctx,String date, String time, String score)
{
    TextView mdate=mView.findViewById(R.id.date_box);
    TextView mtime=mView.findViewById(R.id.time_box);
    TextView mscore=mView.findViewById(R.id.score_box);
}

}

AMAW类

public class amaw {

String date;
String score;
String time;

String username;

public amaw(String datee, String time, String score) {
    this.date = datee;
    this.time = time;
    this.score = score;
}

public amaw() {

}
public String getDate() {
    return date;
}

public void setDate(String datee) {
    this.date = datee;
}


public String getScore() {
    return score;
}

public void setScore(String score) {
    this.score = score;
}

public String getTime() {
    return time;
}

public void setTime(String time) {
    this.time = time;
}

}

共有1个答案

凌远
2023-03-14

更改此:


public void setDetails(Context ctx,String date, String time, String score)
{
    TextView mdate=mView.findViewById(R.id.date_box);
    TextView mtime=mView.findViewById(R.id.time_box);
    TextView mscore=mView.findViewById(R.id.score_box);
}

变成这样:


public void setDetails(Context ctx,String date, String time, String score)
{
    TextView mdate=mView.findViewById(R.id.date_box);
    TextView mtime=mView.findViewById(R.id.time_box);
    TextView mscore=mView.findViewById(R.id.score_box);
    mdate.setText(date);
    mtime.setText(time);
    mscore.setText(score);
}
 类似资料:
  • 一切正常,但DatabaseReference无法获取数据,这就像是忽略了我的代码运行,就像我的internet无法运行一样,请帮助我,我是这个社区的新手,下面是我的代码和图片。 以前它是工作的,但由于我只是更改了一些代码,使只有currentVersion>=vCode,这样即使数据库中的值是 firebase数据库映像 mainactivity.java manifest.xml 依赖关系

  • 我试图从Firebase数据库中读取数据,我已经到处阅读和查找,但我已经走到了死胡同。 这就是我所做的一切。 依赖项: 实现'com.google.firebase: Firebase存储: 9.2.1' 实现'com。谷歌。firebase:firebase数据库:9.2。1' 实现'com。谷歌。firebase:firebase授权:9.2。1' 实现'com。谷歌。火基:火基核心:9.2。

  • 问题内容: 每个人,我都试图制作一个音乐应用程序,为此,我在自己的作品中创建了一个Horizo​​ntal ,而我的Horizo​​ntal 正在获取带有艺术家姓名的图像。 但是单击后,我加载了另一个活动。在我的其他活动,我试图在从火力加载SongsData 用。 但是问题是我没有从Firebase获取数据,而是返回了空数据。我在下面提供了我的代码,这是我的Firebase数据库的屏幕截图:-Sc

  • 我已经花了几个小时阅读产品分支中的0和1。请在Firebase数据库有经验的人帮助我:(

  • 因此,我尝试拍摄数据库的快照,并添加带有子项的数组字符串中的项。 我的set和get java文件如下所示 但是,当我的程序到达dataQuery方法并尝试获取和设置名称和成分时,它会崩溃。有人能解释一下我做错了什么,以及是否有更好的方法来使用数据库快照来做到这一点吗? 进程:in.tvac.akshayejh.firebasesearch,PID:24798java.lang.NullPoint

  • 我正在使用viewpager使用滑块,此滑块显示一些图像。我将此图像存储在我的Firebase数据库中,但此应用程序被粉碎并在addValueEventListener方法中显示错误。 主要活动。Java语言 SliderPageAdapter.java SliderModel.java 如何解决此错误?