首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我想要显示来自firebase实时数据库的回收视图android上的数据。但是我无法将动态数据加载到适配器数组中

要显示来自Firebase实时数据库的数据,首先需要创建一个适配器来加载动态数据到数组中,然后将数组与视图绑定。

以下是一个示例步骤,以在Android应用程序中显示来自Firebase实时数据库的数据:

  1. 添加Firebase依赖 在项目的build.gradle文件中,添加Firebase数据库依赖:
代码语言:txt
复制
implementation 'com.google.firebase:firebase-database:20.0.1'
  1. 初始化Firebase数据库 在应用程序的主活动(MainActivity)中,初始化Firebase数据库:
代码语言:txt
复制
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

// ...

public class MainActivity extends AppCompatActivity {
    private DatabaseReference mDatabase;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 初始化Firebase数据库
        FirebaseDatabase database = FirebaseDatabase.getInstance();
        mDatabase = database.getReference("your-database-node");
    }
}
  1. 创建适配器和数据模型 创建一个适配器(例如MyAdapter)继承自RecyclerView.Adapter,并创建一个数据模型类(例如MyDataModel)来存储从数据库中获取的数据:
代码语言:txt
复制
import java.util.ArrayList;
import java.util.List;

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
    private List<MyDataModel> mDataList;

    public MyAdapter() {
        mDataList = new ArrayList<>();
    }

    public void setData(List<MyDataModel> data) {
        mDataList = data;
        notifyDataSetChanged();
    }

    // ...

    public class ViewHolder extends RecyclerView.ViewHolder {
        // ...

        public ViewHolder(View itemView) {
            super(itemView);
            // 初始化视图项
        }
    }
}
  1. 查询Firebase实时数据库并加载数据 在适配器中添加查询Firebase实时数据库的方法,并将数据加载到适配器的数组中:
代码语言:txt
复制
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
    // ...

    public void fetchDataFromFirebase() {
        mDatabase.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                List<MyDataModel> dataList = new ArrayList<>();
                for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                    MyDataModel data = snapshot.getValue(MyDataModel.class);
                    dataList.add(data);
                }
                setData(dataList);
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
                Log.d("Firebase", "Failed to read value", databaseError.toException());
            }
        });
    }
}
  1. 在Activity中使用适配器 在MainActivity中使用适配器,并将其与RecyclerView绑定:
代码语言:txt
复制
public class MainActivity extends AppCompatActivity {
    // ...
    private MyAdapter mAdapter;
    private RecyclerView mRecyclerView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 初始化RecyclerView和适配器
        mRecyclerView = findViewById(R.id.recycler_view);
        mAdapter = new MyAdapter();

        LinearLayoutManager layoutManager = new LinearLayoutManager(this);
        mRecyclerView.setLayoutManager(layoutManager);
        mRecyclerView.setAdapter(mAdapter);

        // 加载数据
        mAdapter.fetchDataFromFirebase();
    }
}

通过上述步骤,您应该能够成功将来自Firebase实时数据库的数据加载到Android应用程序中的适配器数组中,并显示在RecyclerView中。

注意:上述示例是一个基本的实现框架,您需要根据您的实际需求进行适当修改和调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券