Не знаю, как отправить массив, заполненный в onDataChanged, в метод, который вызывается для создания нового фрагмента, чтобы передать его с объектом связки
Я пытался связываться с конструктором в ожидайте его как параметр и в теле конструктора появится как «не пустой», но после этого я не знаю, как отправить его в метод addFragment, так как я пробовал и кажется «нулевым». Я пытался получить к нему доступ как MainActivity.this.arraylist, но он говорит, что пуст. я сделал это stati c и он все еще говорит, что он пуст
publi c class MainActivity расширяет AppCompatActivity {
private TabLayout tablayout;
private ViewPager viewpager;
private Temperatura temperatura;
private Humedad humedad;
private Viento viento;
private Info informacion;
List<String> Lecturabundle = new ArrayList<>();
DatabaseReference mDatabase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDatabase = FirebaseDatabase.getInstance().getReference();
tablayout = findViewById(R.id.tablayout);
viewpager = findViewById(R.id.viewpager);
temperatura = new Temperatura();
humedad = new Humedad();
viento = new Viento();
informacion = new Info();
tablayout.setupWithViewPager(viewpager);
ViewPagerAdapter viewpageradapter = new ViewPagerAdapter(getSupportFragmentManager(), 0);
mDatabase.child("lectura").child("hora").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Lecturabundle.add(dataSnapshot.getValue().toString());
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
System.out.println("The read failed: " + databaseError.getCode());
}
});
viewpageradapter.addFragment(temperatura, "Temperatura");
viewpageradapter.addFragment(humedad, "Humedad");
viewpageradapter.addFragment(viento, "Viento");
viewpageradapter.addFragment(informacion, "info");
viewpager.setAdapter(viewpageradapter);
}
private class ViewPagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments = new ArrayList<>();
private List<String> fragmentTitle = new ArrayList<>();
public ViewPagerAdapter(@NonNull FragmentManager fm, int behavior) {
super(fm, behavior);
}
@NonNull
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
public void addFragment(Fragment fragment, String title, List<String> recibeArrayList){
ЗДЕСЬ ГДЕ НУЖНО БЫТЬ, ЧТОБЫ БЫТЬ, ЧТО Я МОГУ ОТПРАВИТЬ ЭТО КАЖДОЙ ФРАГМЕНТ, НО Я НЕ ЗНАЮ, КАК ЭТО СДЕЛАТЬ ПРАВИЛЬНЫМ СПОСОБОМ С ТОГО, ЧТО Я ПОПРОБОВАЛ, ДАЕТ МНЕ ТОЧКУ, ГДЕ КОГДА ЭТО НАКОНЕЦ ЗДЕСЬ () ГОВОРИТ TRU
Bundle b = new Bundle();
b.putStringArrayList("recibe", (ArrayList<String>) Lecturabundle);
fragment.setArguments(b);
fragments.add(fragment);
fragmentTitle.add(title);
}
@Override
public int getCount() {
return fragments.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return fragmentTitle.get(position);
}
}
}
Мне нужно, чтобы Lecturabundle был в addFragment, чтобы я мог передать его как связку с фрагментами