【问题标题】:In array it is storing NULL instead of PDF file name在数组中它存储 NULL 而不是 PDF 文件名
【发布时间】:2020-08-19 16:15:33
【问题描述】:
public class cp extends AppCompatActivity {

    ListView ListPdf;
    DatabaseReference databaseReference;
    List<upload> uploadPdf;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_cp);

        ListPdf = (ListView) findViewById(R.id.List);
        uploadPdf = new ArrayList<>();
        ViewAllPdf();
    }

    private void ViewAllPdf() {
        databaseReference = FirebaseDatabase.getInstance().getReference("year_1");
        databaseReference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                for(DataSnapshot PostSnapShot: dataSnapshot.getChildren()){

                    upload Pdf = PostSnapShot.getValue(upload.class);
                    uploadPdf.add(Pdf);

                }

                String[] uploads = new String[uploadPdf.size()];
                for(int i=0;i<uploads.length;i++){
                    uploads[i] = uploadPdf.get(i).getName();
                }
                ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1,uploads);
                ListPdf.setAdapter(adapter);
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });
    }


}

上传课程

public class upload {

    public String name;

    public upload() {

        this.name = name;
    }



    public String getName() {
        return name;
    }
}

在 uploads[ ] 中它存储的是 null 而不是文件名,我不知道是什么问题。我尝试使用 logcat 进行调试,但它显示 Pdf 对象具有三个文件,但在 uploads[] 中它存储 NULL。请仔细查看

Firebase 数据库截图

【问题讨论】:

  • 在这个for循环下面记录uploadPdf.size() for(DataSnapshot PostSnapShot: dataSnapshot.getChildren()
  • 尝试在 Upload 类中添加 public upload() {}
  • @MalikBilal 已经添加了
  • @HB。请解释你想说什么
  • 我在您发布的代码中看不到它。

标签: java android firebase firebase-realtime-database android-listview


【解决方案1】:

您的代码的问题是您的 POJO 类 Upload。请参阅 Firebase 文档中的示例


public class User {

    public String username;
    public String email;

    public User() {
        // Default constructor required for calls to DataSnapshot.getValue(User.class)
    }

    public User(String username, String email) {
        this.username = username;
        this.email = email;
    }

}

您的实时数据库中的字段名称也与您的 POJO 类不匹配。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2012-05-08
  • 1970-01-01
  • 2021-09-09
  • 2015-03-30
  • 2017-11-23
  • 1970-01-01
  • 2019-12-26
  • 1970-01-01
相关资源
最近更新 更多