Java 如何获取子文本并在列表视图中进行设置
我一直在尝试在我的仪表板的列表视图中获取儿童列表。每当我单击“用户”时,我都需要在列表视图中列出这些子项Java 如何获取子文本并在列表视图中进行设置,java,android,firebase,Java,Android,Firebase,我一直在尝试在我的仪表板的列表视图中获取儿童列表。每当我单击“用户”时,我都需要在列表视图中列出这些子项 创建一个模型类,将所有字段作为数据库子级的字段,并使用它,如下所示 =>假设您的模型类名为Users,然后 ClientsRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnap
创建一个模型类,将所有字段作为数据库子级的字段,并使用它,如下所示 =>假设您的模型类名为Users,然后
ClientsRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.exists())
{
Users users=new Users(dataSnapshot.getValue());
ArrayList<Users> userList=new ArrayList();
userList.add(users);
}
else
{
Clients.setText("0 Clients");
}
}
ClientsRef.addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
if(dataSnapshot.exists())
{
Users=新用户(dataSnapshot.getValue());
ArrayList userList=新的ArrayList();
userList.add(用户);
}
其他的
{
Clients.setText(“0个客户”);
}
}
[1]。只需在活动中使用回收视图而不是文本视图
[2] .将字符串数组列表放入您的活动中,如
ArrayList<String> childList=new ArrayList<>();
[5] .在onDataChange()中进行如下更改
ClientsRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.exists())
{
for(DataSnapshot snapshot:dataSnapshot){
childList.add(snapshot.getKey());
}
adapter.notifyDataSetChanged();
}
else
{
Clients.setText("0 Clients");
}
}
就是这样到目前为止,你在代码中尝试了什么?我真的不知道,我只能通过使用getChildrenCount函数来获取计数编辑问题并添加代码。我想你不明白我在问什么,我想设置孩子本身,而不是Number下的数据库,因此你必须要e text查看您孩子的数量计数..我说得对吗?那么为什么您不使用recyclerView来实现您的功能?如果您了解我的问题,请您指导整个过程。您熟悉recyclerView和recyclerView适配器吗?先生,看到这一个,您将非常了解我想要什么
recyclerview.setLayoutManager(new LinearLayoutManager(this,RecyclerView.VERTICAL,false);
YourAdapter adapter=new YourAdapter(this,childList) //pass your arraylist
recyclerview.setAdapter(adapter);
ClientsRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.exists())
{
for(DataSnapshot snapshot:dataSnapshot){
childList.add(snapshot.getKey());
}
adapter.notifyDataSetChanged();
}
else
{
Clients.setText("0 Clients");
}
}