【发布时间】:2021-02-01 12:31:40
【问题描述】:
在这个项目中,我有两种类型的用户(教师和学生)。老师可以添加班级,学生应该可以选择班级并签到班级,当学生签到班级时,老师应该可以给他打分。我不知道如何将用户连接到课程并给他评分。
这是我的类适配器
public class ClassesAdapter extends FirebaseRecyclerAdapter<Classes, ClassesAdapter.StudentViewHolder> {
/**
* Initialize a {@link RecyclerView.Adapter} that listens to a Firebase query. See
* {@link FirebaseRecyclerOptions} for configuration options.
*
* @param options
*/
public ClassesAdapter(@NonNull FirebaseRecyclerOptions options) {
super(options);
}
protected void onBindViewHolder(@NonNull StudentViewHolder holder, int position, @NonNull Classes model) {
holder.className.setText(model.getCname());
holder.classInfo.setText(model.getDescription());
holder.classUid.setText(model.getUid());
String keyId = this.getRef(position).getKey();
}
@NonNull
@Override
public StudentViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.classes, parent, false);
return new ClassesAdapter.StudentViewHolder(view);
}
public class StudentViewHolder extends RecyclerView.ViewHolder {
TextView className;
TextView classInfo;
TextView classUid;
Button classSignInBtn;
public StudentViewHolder(@NonNull View itemView) {
super(itemView);
className = itemView.findViewById(R.id.classNameTxt);
classInfo = itemView.findViewById(R.id.classInfoTxt);
classUid = itemView.findViewById(R.id.classUidTxt);
classSignInBtn = itemView.findViewById(R.id.classSignInBtn);
int position = getAdapterPosition();
classSignInBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FirebaseAuth mAuth = FirebaseAuth.getInstance();
String uId = mAuth.getCurrentUser().getUid();
FirebaseDatabase db = FirebaseDatabase.getInstance();
DatabaseReference ref = db.getReference("ednevnik/korisnici/" + uId);
DatabaseReference ref1 = db.getReference("ednevnik/razredi/");
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
String name = snapshot.child("name").getValue().toString();
String email = snapshot.child("email").getValue().toString();
String grade = " ";
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
});
}
}
}
【问题讨论】:
标签: java android firebase firebase-realtime-database