Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取子文本并在列表视图中进行设置_Java_Android_Firebase - Fatal编程技术网

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");

            }

        }