android - 列表视图未显示我来自 FIREBASE 的项目
问题描述
集合“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 REALTIME DATABASE 中的组名称,代码没有错误,并且数据也存储在数据库中。
我尝试清理和构建我的项目,但它不起作用。
这是我的 xml 文件。
`
<ListView
android:id="@+id/list_View"
android:layout_width="match_parent"
android:layout_height="match_parent" />`
解决方案
在您的onDataChange
方法中,您永远不会使用来自list_groups
. 你应该在打电话之前打电话给addAll
你ArrayAdpater
notifyDataSetChanged()
就像是:
arrayAdapter.addAll(list_groups);
arrayAdapter.notifyDataSetChanged()
推荐阅读
- node.js - 遇到 Redis 内存峰值问题
- android - 如何在 Android Studio 中调试 Instance.cpp 等 ReactCommon 文件?
- sql - 如何在应用程序中获取 Oracle sql Id
- javascript - 使用自定义 css 覆盖 Bootstrap
- spring-boot - 我们可以手动更改 Kafka Stream 的状态吗?
- search - SOLR 部分/精确词搜索词突出显示
- php - 使用子选择选择
- git - 缩小 .git 目录大小的最佳方法是什么?
- laravel - Laravel 安装问题(通过在 windows 上使用 composer)
- arrays - laravel 8 按索引的多个数组值