列表视图未显示我来自 FIREBASE 的项目

Posted

技术标签:

【中文标题】列表视图未显示我来自 FIREBASE 的项目【英文标题】:List View is not showing my items from FIREBASE 【发布时间】:2021-03-15 10:21:28 【问题描述】:

集合“list_of_groups”的内容已更新,但从未查询, 这是我能在我的代码中发现的唯一问题。

   private View groupFragmentView;
    private ListView list_View;
    private ArrayAdapter<String> arrayAdapter;
    private ArrayList<String> list_of_groups = new ArrayList<>();
    private DatabaseReference GroupRef;

这部分代码没有问题...

 ` 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    
        // Inflate the layout for this fragment
        groupFragmentView =  inflater.inflate(R.layout.fragment_groups, container, false);

        GroupRef = FirebaseDatabase.getInstance().getReference().child("Groups");

        InitializeFields(groupFragmentView);

        RetriveAndDisplayGroups();


        return groupFragmentView;
    

    private void RetriveAndDisplayGroups()
    
        GroupRef.addValueEventListener(new ValueEventListener()
        
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot)
            
                Set<String> set = new HashSet<>();
                Iterator iterator = snapshot.getChildren().iterator();

                while (iterator.hasNext())
                
                    set.add(((DataSnapshot)iterator.next()).getKey());
                

                list_of_groups.clear();
                list_of_groups.addAll(set);
                arrayAdapter.notifyDataSetChanged();
            

          
    

    private void InitializeFields(View view)
    
        list_View = (ListView) view.findViewById(R.id.list_View);
        arrayAdapter = new ArrayAdapter<String>(getContext(),android.R.layout.simple_list_item_1);
        list_View.setAdapter(arrayAdapter);

    `

这是我的代码,它没有显示存储在我的 firebase 实时数据库中的组名, 代码没有错误,数据也在数据库中。

我尝试清理和构建我的项目,但没有成功。

这是我的 xml 文件。

`

<ListView
        android:id="@+id/list_View"
        android:layout_
        android:layout_ />`

【问题讨论】:

【参考方案1】:

在您的 onDataChange 方法中,您永远不会使用来自 list_groups 的值更新您的 ArrayAdpater。在调用notifyDataSetChanged()之前,您应该在ArrayAdpater 上调用addAll

类似:

arrayAdapter.addAll(list_groups);
arrayAdapter.notifyDataSetChanged()

【讨论】:

以上是关于列表视图未显示我来自 FIREBASE 的项目的主要内容,如果未能解决你的问题,请参考以下文章

添加数据时,Firebase 列表视图未实时显示

Firebase Android ListView 未显示

Firebase Android ListView 未显示

列表视图不显示来自firebase数据库的任何内容

来自 Firebase 的数据未显示在 BigQuery/Data Studio 中

来自 firebase 的数据未填充到我的表格视图中