Добавление данных в список массивов не удалось - PullRequest
0 голосов
/ 29 ноября 2018

Я хочу добавить объект с именем funny_momments_row к ArrayList с именем data, но он не добавляется.Я проверяю, что data пусто или не использует метод isEmpty впоследствии.Код работает нормально до этой строки:

funny_momments_row current = new funny_momments_row(dataSnapshot.child("like").getValue().toString(),dataSnapshot.child("url").getValue().toString());

Вот полный класс:

public class funny_moments extends Fragment {
    FirebaseDatabase database = FirebaseDatabase.getInstance();
    DatabaseReference myRef = database.getReference("funnymomments");
    ArrayList<funny_momments_row> data;
    TextView tesgting;

    private RecyclerView mRecyclerView;

    public funny_moments() {
        // Required empty public constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_funny_moments, container, false);
        mRecyclerView = (RecyclerView) view.findViewById(R.id.recylerview);
        tesgting = (TextView) view.findViewById(R.id.test);
        data = new ArrayList<>();
        getData();

        // Inflate the layout for this fragment
        return view;
    }

    public void getData() {
        funny_momments_row lu = new funny_momments_row("1", "hi");
        myRef.child("video 0").setValue(lu);
        myRef.child("video 0").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                for (DataSnapshot videoSnapshot: dataSnapshot.getChildren()) {
                    funny_momments_row current = new funny_momments_row(dataSnapshot.child("like").getValue().toString(), dataSnapshot.child("url").getValue().toString());
                    data.add(current);
                }
            }

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

            }
        });

        if (data.isEmpty()) {
            tesgting.setText("hi");
        }
    }
}

enter image description here

1 Ответ

0 голосов
/ 29 ноября 2018

Попробуйте, потому что videoSnapsot - это данные, которые необходимо добавить в список массивов.

  public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            for (DataSnapshot videoSnapshot: dataSnapshot.getChildren()) {

                data.add(videoSnapshot.getValue(funny_momments_row.class));
                //Create getter/setter method in funny_momments_row class if needed.
            }
        }

И, для funny_momments_row, соглашение об именовании java, пожалуйста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...