ValueEventListner不会在第一次加载活动时运行

问题描述 投票:0回答:1

我不明白为什么第一次加载活动时监听器不运行。这是代码段。

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

    ArrayList<SummaryPestQuadratHillIncidence> arrayListSummary = new ArrayList<>();
    AdapterIncidenceSummary adapterIncidenceSummary = new AdapterIncidenceSummary(this, arrayListSummary);

    adapterIncidenceSummary.clear();
    adapterIncidenceSummary.notifyDataSetChanged();

    expandedListView = findViewById(R.id.listViewPestIncidence);

    Intent intent = getIntent();
    String ctrlNumber = intent.getStringExtra("ctrlNumber");
    String fieldNo = intent.getStringExtra("fieldNo");
    String variety = intent.getStringExtra("variety");
    String inspector = intent.getStringExtra("inspector");

     editText_ctrl_num = findViewById(R.id.editText_ctrl_number);
    TextInputEditText editText_field_no = findViewById(R.id.edittext_field_number);
    TextInputEditText editText_variety = findViewById(R.id.edittext_variety_planted);
    TextInputEditText editTextInspector = findViewById(R.id.edittext_inspector);

    editText_ctrl_num.setText(ctrlNumber);
    editText_field_no.setText(fieldNo);
    editText_variety.setText(variety);
    editTextInspector.setText(inspector);

    if (!ctrlNumber.isEmpty()) {
        Log.e("inside", "ctrl number not empty");

        dbf.child(ctrlNumber)
                .child("Crop Health")
                .child("Summary Incidence")
                .addListenerForSingleValueEvent(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                        SummaryPestQuadratHillIncidence summaryIncidence = new SummaryPestQuadratHillIncidence();
                        for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
                            summaryIncidence = dataSnapshot1.getValue(SummaryPestQuadratHillIncidence.class);
                            arrayListSummary.add(summaryIncidence);
                            adapterIncidenceSummary.notifyDataSetChanged();
                            expandedListView.setAdapter(adapterIncidenceSummary);
                            Log.e("inside onDataChange", "FIRE");

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

                    }
                });


    } else {
        Log.e("Skipped", "control number is: " + ctrlNumber);
    }

}

我尝试将其放入条件中,条件运行(打印日志),但是侦听器不会触发。但是,如果我第二次运行它,它将起作用。我不知道这里出了什么问题。

android firebase listener
1个回答
0
投票

我没有看到您的数据库的初始化。初始化FirebaseDatabase

FirebaseDatabase dbf = FirebaseDatabase.getInstance();
© www.soinside.com 2019 - 2024. All rights reserved.