从firebase实时数据库中检索AutoCompleteTextView的数据

时间:2017-07-31 17:46:04

标签: android firebase firebase-realtime-database

我已经提到了Retrieving data from Firebase Realtime Database in Android。我的问题是对此的延伸。我试图通过ArrayAdapter使用从firebase检索到的AutoCompleteTextView数据。但是ArrayList和&适配器在onDataChange方法之外是“null”。猜测是因为从数据库中检索数据的延迟(甚至在数据加载完成之前就设置了适配器)。是否存在等待数据加载的回调方法或处理此问题的最佳方法是什么?另外,在onDataChange方法内的Adapter上尝试使用notifyDataSetChanged,仍然没有运气!我正在动态添加AutoCompleteTextView,所以我无法在onDataChange方法中将适配器设置为AutoCompleteTextView。

我的代码......

Query myQuery = mDatabaseRef.orderByChild("medicine");

    myQuery.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            medicinesArray = new ArrayList<>();

            for (DataSnapshot medicineSnapshot : dataSnapshot.getChildren()) {
                String medicineName = medicineSnapshot.child("medicine").getValue(String.class);
                medicinesArray.add(medicineName);
            }

            autoCompletionAdapter = new ArrayAdapter<>
                    (Prescription.this, android.R.layout.select_dialog_item, medicinesArray);

            autoCompletionAdapter.notifyDataSetChanged(); // refresh adapter --- tried this

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

。 。

AutoCompleteTextView testview = (AutoCompleteTextView) findViewById(R.id.test_autocomplete);
    testview.setThreshold(2);
    testview.setAdapter(autoCompletionAdapter);

0 个答案:

没有答案