android studio中的回收器视图存在问题-仅偶尔出现

android studio中的回收器视图存在问题-仅偶尔出现,android,android-recyclerview,Android,Android Recyclerview,我按照教程为我的应用程序创建了一个recyclerview 我不工作,因为它只是偶尔显示视图中的任何内容 似乎根本就没有任何理由 可回收的布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/

我按照教程为我的应用程序创建了一个recyclerview 我不工作,因为它只是偶尔显示视图中的任何内容 似乎根本就没有任何理由

可回收的布局

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
android:id="@+id/parent_layout"
android:layout_width="match_parent"
android:layout_height="80dp">

<TextView
    android:id="@+id/text_value"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_vertical"
    android:text="Test"
    android:textColor="#000000"
    android:textSize="18sp" />
</LinearLayout>
虽然没有显示,但我可以测试initAccounts()是否按其应该的方式填充数组 我还可以看到onCreateViewHolder和onBindViewHolder没有被调用

有什么建议吗

编辑: 这是账目

private void initAccounts() {
    DatabaseReference userRef = 

FirebaseDatabase.getInstance().getReference().child("users");

userRef.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot snapshot) {
        Iterator<DataSnapshot> children = snapshot.getChildren().iterator();
        while (children.hasNext()) {
            DataSnapshot child = children.next();
            String[] parts = child.getValue().toString().split(",");
            String role = parts[0].replace('{', ' ');
            String msg = child.getKey() + ": " + role;
            accounts.add(msg);
        }
    }
    @Override
    public void onCancelled(@NonNull DatabaseError error) {
    }
});
private void initAccounts(){
数据库引用userRef=
FirebaseDatabase.getInstance().getReference().child(“用户”);
userRef.addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
public void onDataChange(@NonNull DataSnapshot snapshot snapshot){
Iterator children=snapshot.getChildren().Iterator();
while(children.hasNext()){
DataSnapshot child=children.next();
String[]parts=child.getValue().toString().split(“,”);
字符串角色=部分[0]。替换('{','');
字符串msg=child.getKey()+“:”+角色;
accounts.add(msg);
}
}
@凌驾
已取消公共void(@NonNull DatabaseError){
}
});

}

这里的问题是您正在向
帐户添加对象,但没有将更改通知适配器。请对代码进行以下更改。
对于在
onCreate()中设置适配器,请仅使用

private RecyclerViewAdapterAccounts adapter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_manage_accounts);
    initAccounts();
    RecyclerView recyclerView = findViewById(R.id.recycler_view_accounts);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    adapter = new RecyclerViewAdapterAccounts(accounts, this);
    recyclerView.setAdapter(adapter);
}
现在在
RecycleServiceAdapterAccounts
中创建一个方法,在适配器中添加元素

public void addAll(ArratList<String> list){
        mlist.clear();// To clear list if thats the case
        mlist.addAll(list);
        notifyDataSetChanged();
    }
public void addAll(数组列表){
mlist.clear();//在这种情况下清除列表
mlist.addAll(列表);
notifyDataSetChanged();
}
现在,您可以在一次转到适配器中添加所有元素

public void onDataChange(@NonNull DataSnapshot snapshot) {
        ArrayList<String> dataList=new ArrayList<>();
        Iterator<DataSnapshot> children = snapshot.getChildren().iterator();
        while (children.hasNext()) {
            DataSnapshot child = children.next();
            String[] parts = child.getValue().toString().split(",");
            String role = parts[0].replace('{', ' ');
            String msg = child.getKey() + ": " + role;
            dataList.add(msg);
        }
        adapter.addAll(dataList);
    }
public void onDataChange(@NonNull DataSnapshot snapshot snapshot){
ArrayList dataList=新的ArrayList();
Iterator children=snapshot.getChildren().Iterator();
while(children.hasNext()){
DataSnapshot child=children.next();
String[]parts=child.getValue().toString().split(“,”);
字符串角色=部分[0]。替换('{','');
字符串msg=child.getKey()+“:”+角色;
dataList.add(msg);
}
adapter.addAll(数据列表);
}

你能在函数initAccounts()中发布代码吗?非常感谢,我正准备扔掉我的计算机。我按照教程走了这么远,但还没有理解到找到这样的东西。工作很好,再次感谢你。
private RecyclerViewAdapterAccounts adapter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_manage_accounts);
    initAccounts();
    RecyclerView recyclerView = findViewById(R.id.recycler_view_accounts);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    adapter = new RecyclerViewAdapterAccounts(accounts, this);
    recyclerView.setAdapter(adapter);
}
public void addAll(ArratList<String> list){
        mlist.clear();// To clear list if thats the case
        mlist.addAll(list);
        notifyDataSetChanged();
    }
public void onDataChange(@NonNull DataSnapshot snapshot) {
        ArrayList<String> dataList=new ArrayList<>();
        Iterator<DataSnapshot> children = snapshot.getChildren().iterator();
        while (children.hasNext()) {
            DataSnapshot child = children.next();
            String[] parts = child.getValue().toString().split(",");
            String role = parts[0].replace('{', ' ');
            String msg = child.getKey() + ": " + role;
            dataList.add(msg);
        }
        adapter.addAll(dataList);
    }