列表视图未显示我来自 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 的项目的主要内容,如果未能解决你的问题,请参考以下文章