我不明白为什么第一次加载活动时监听器不运行。这是代码段。
@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);
}
}
我尝试将其放入条件中,条件运行(打印日志),但是侦听器不会触发。但是,如果我第二次运行它,它将起作用。我不知道这里出了什么问题。
我没有看到您的数据库的初始化。初始化FirebaseDatabase
FirebaseDatabase dbf = FirebaseDatabase.getInstance();