【问题标题】:Firebase AndroidFirebase 安卓
【发布时间】:2017-01-19 21:06:23
【问题描述】:

在 OnDataChange() 中使用 takeModel 获取数据后,我想将它们放入 arraylist,它负责创建活动。

 final String[] takeModel = null;
            ....
    myRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            int i=0;
            int lenght = (int) dataSnapshot.getChildrenCount();
            String[] takeModel = new String[lenght];
            for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
                TvAtributes tvnowe = postSnapshot.getValue(TvAtributes.class);

                takeModel[i]=tvnowe.getModel(); // taking data here   
                i++;
            }

        }
        ......
      ArrayList<TvAtributes> tv_models = new ArrayList<>();
    for(int i=0;i<android_version_names.length;i++){
        TvAtributes tvModele = new TvAtributes();
        tvModele.setModel(takeModel[i]);  //this is crashing 
        tvModele.setImgaddres(image_urls[i]);
        tv_models.add(tvModele);

我不知道该怎么做。 提前致谢

【问题讨论】:

  • 你需要了解异步调用和多线程的概念...
  • 另外你应该学习一些java的基础知识,比如变量的作用域......
  • 问题是 ArrayList tv_models 正在等待 2 个数组,其中一个我在乞求中定义为私有最终,第二个我想从数据库中获取

标签: android arraylist firebase firebase-realtime-database


【解决方案1】:

答案是

final ArrayList<TvAtributes> tv_models = new ArrayList<>();
 .....
  @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            int i=0;
            for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
                TvAtributes tvnowe = postSnapshot.getValue(TvAtributes.class);
                tvnowe.getModel();
                tvnowe.setImgaddres(image_urls[i]);
                tv_models.add(tvnowe);
                i++;
            }
            ...
           return tv_models;

感谢您的帮助

【讨论】:

    猜你喜欢
    • 2023-03-12
    • 2018-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多