Я пытаюсь обновить адаптер (MyCollegePagerAdapter) из CollegeHTMLParse.class. Однако, несмотря на то, что я создал объект и вызвал для него метод notifyDataSetChanged (), на фрагментах видно, что он обнаружен. Можете ли вы сказать мне, если что-то не так с моим кодом, так как я уже несколько недель пытаюсь найти решение, и после нескольких часов попыток я не могу выяснить проблему.
Вот класс CollegeHTMLParse:
public class CollegeHTMLParse extends AppCompatActivity {
public static ArrayList<String> colleges = new ArrayList<>();
public static ArrayList<String> accepted = new ArrayList<>();
public static ArrayList<String> link = new ArrayList<>();
public static ArrayList<String> location = new ArrayList<>();
public static ArrayList<String> tuition = new ArrayList<>();
FirebaseDatabase mRef;
DatabaseReference database;
public static ArrayList<String> data = new ArrayList<>();
MyCollegePagerAdapter adapter = new MyCollegePagerAdapter(getSupportFragmentManager());
public void onCreate(String CollegeCode) {
colleges.clear();
accepted.clear();
link.clear();
location.clear();
tuition.clear();
mRef = FirebaseDatabase.getInstance("https://successway18.firebaseio.com/");
database = mRef.getReference().child("CollegeCodes").child("30");
database.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
setCollegeValues(dataSnapshot.getKey());
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
public void setCollegeValues(String values) {
colleges.add(values);
int i = 0;
while (i < colleges.size()) {
database.child(colleges.get(i)).addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
setDetailsValues(dataSnapshot.getValue().toString());
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
i++;
}
}
private void setDetailsValues(String details) {
data.add(details);
if (data.size() == 4) {
accepted.add(data.get(0));
link.add(data.get(1));
location.add(data.get(2));
tuition.add(data.get(3));
data.clear();
}
update();
}
private void update() {
adapter.notifyDataSetChanged();
}
}
Большое спасибо заранее!