我正在尝试创建一个群组活动,在该活动中可以显示用户连接到的所有群组。我已经创建了小组活动,并在其中插入了回收站视图,并试图从数据库中检索数据,但是不幸的是,我遇到了错误。我已经尽力解决了所有问题,但仍然遇到了错误。
目前,我遇到此错误..发现两个吸气剂或 属性的区分大小写冲突:groupprofilename。
如果您不介意,请帮助我,以便我完成活动。
下面的代码是用户可以创建组的代码。
private void groupmethos(final String groupname) {
DatabaseReference groupref = rootref.child("Group").push();
final String grouppushid = groupref.getKey();
Map groupmap = new HashMap<>();
groupmap.put("GroupprofileName",groupname);
groupmap.put("Creater",currentUser.getUid());
groupmap.put("StatusGroup","");
groupmap.put("profileimage","");
groupmap.put("id",grouppushid);
rootref.child("Group").child(grouppushid).updateChildren(groupmap).addOnCompleteListener(new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task task) {
rootref.child("GroupMessage").child(grouppushid).setValue("").addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()){
rootref.child("userconnectedtogroup").child(currentUser.getUid()).child(grouppushid).setValue("Added").addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Toast.makeText(MainActivity.this,groupname + "group Created successfully",Toast.LENGTH_SHORT).show();
}
});
}
}
});
}
});
}
在上述代码中,用户请求创建一个组。 下面给出的是使用getter和setter从数据库中获取数据的代码。
package com.nanb.alpha;
public class modelclass {
public String GroupprofileName,StatusGroup,profileimage;
public modelclass() {
}
public modelclass(String groupprofileName, String statusGroup, String profileimage) {
this.GroupprofileName = groupprofileName;
this.StatusGroup = statusGroup;
this.profileimage = profileimage;
}
public String getGroupprofileName() {
return GroupprofileName;
}
public void setGroupprofileName(String groupprofileName) {
GroupprofileName = groupprofileName;
}
public String getStatusGroup() {
return StatusGroup;
}
public void setStatusGroup(String statusGroup) {
StatusGroup = statusGroup;
}
public String getProfileimage() {
return profileimage;
}
public void setProfileimage(String profileimage) {
this.profileimage = profileimage;
}
}
给定代码是recyclerview用来将值设置为给定布局的代码。
public class group extends AppCompatActivity {
private RecyclerView recyclerView;
private DatabaseReference conref,groupref;
private FirebaseAuth mAuth;
private String Currentuserid;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_group);
intialiation();
mAuth = FirebaseAuth.getInstance();
Currentuserid = mAuth.getCurrentUser().getUid();
conref = FirebaseDatabase.getInstance().getReference().child("userconnectedtogroup").child(Currentuserid);
groupref = FirebaseDatabase.getInstance().getReference().child("Group");
}
private void intialiation() {
recyclerView = findViewById(R.id.recyclerview);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
}
@Override
protected void onStart() {
super.onStart();
FirebaseRecyclerOptions option = new FirebaseRecyclerOptions.Builder<modelclass>().setQuery(conref,modelclass.class).build();
FirebaseRecyclerAdapter<modelclass,group_viewHolder> adapter = new FirebaseRecyclerAdapter<modelclass, group_viewHolder>(option) {
@Override
protected void onBindViewHolder(@NonNull final group_viewHolder group_viewHolder, int i, @NonNull modelclass modelclass) {
String userid = getRef(i).getKey();
groupref.child(userid).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.hasChild("profileimage")){
String profileimage = dataSnapshot.child("profileimage").getValue().toString();
String groupname = dataSnapshot.child("GroupprofileName").getValue().toString();
String groupStatus = dataSnapshot.child("StatusGroup").getValue().toString();
group_viewHolder.groupname.setText(groupname);
group_viewHolder.groupStatus.setText(groupStatus);
Picasso.get().load(profileimage).into(group_viewHolder.profileimage);
}else{
String groupname = dataSnapshot.child("GroupprofileName").getValue().toString();
String groupStatus = dataSnapshot.child("StatusGroup").getValue().toString();
group_viewHolder.groupname.setText(groupname);
group_viewHolder.groupStatus.setText(groupStatus);
Picasso.get().load(R.mipmap.groupicon).into(group_viewHolder.profileimage);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
@NonNull
@Override
public group_viewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.grouplayout,parent,false);
group_viewHolder groupholder = new group_viewHolder(view);
return groupholder;
}
};
recyclerView.setAdapter(adapter);
adapter.startListening();
}
public static class group_viewHolder extends RecyclerView.ViewHolder{
TextView groupname,groupStatus;
CircleImageView profileimage;
public group_viewHolder(@NonNull View itemView) {
super(itemView);
groupname = itemView.findViewById(R.id.Group_name);
groupStatus = itemView.findViewById(R.id.Group_Status);
profileimage = itemView.findViewById(R.id.group_profile_dp);
}
}
}
答案 0 :(得分:0)
由于您已经使用了getter / setter和构造函数,因此将模型属性访问修饰符从public
更改为private
private String GroupprofileName,StatusGroup,profileimage;
建议:您应该严格遵循命名约定来编写代码,以获得更好的可读性和可理解性。选中here。
答案 1 :(得分:-1)
在模型类.java中初始化此变量
public String GroupprofileName;
(change to)
public String groupprofileName;
因为可变前缀字母应该是小写字母