Как отобразить новый элемент в верхней позиции адаптера? - PullRequest
0 голосов
/ 08 ноября 2018

Как отобразить новые данные в верхней позиции адаптера? Вот кодировка: -

Извините только сейчас, я неправильно скопировал кодировку, теперь я только заметил. Извините, это моя ошибка. Проблемы теперь в том, что я хочу отобразить последнюю рекламу в верхней части адаптера ....

mDatabase.child("Advertisement").child(mAuth.getUid()).addValueEventListener(new ValueEventListener()
    {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot)
        {
            //iterating through all the values in database
            mChildrenList = new ArrayList<>();
            for (DataSnapshot postSnapshot : dataSnapshot.getChildren())
            {
                Advertisement advertisement = postSnapshot.getValue(Advertisement.class);
                mChildrenList.add(advertisement);
            }
            //Creating adapter
            mAdapter = new AdvertisementAdapter(getApplicationContext(), mChildrenList, "AddAds");

            //Adding adapter to recyclerview
            mRecyclerView.setAdapter(mAdapter);

            //mAdapter.notifyItemChanged(0);
        }

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

        }
    });

Ответы [ 3 ]

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

заменить последний блок еще на этот

    TuitionPackage tuitionPackage = new TuitionPackage();
    tuitionPackage.setPrice(mPriceView.getText().toString());
    tuitionPackageList.add(tuitionPackage);
    mPackageAdapter.notifyDataSetChanged();
0 голосов
/ 11 ноября 2018

Вот мой ответ с помощью приведенной выше кодировки для сортировки первых объявлений в верхней позиции: -

//Iterating through all the values in database
            mChildrenList = new ArrayList<>();
            for (DataSnapshot postSnapshot : dataSnapshot.getChildren())
            {
                Advertisement advertisement = postSnapshot.getValue(Advertisement.class);
                mChildrenList.add(0, advertisement);
            }

            //Creating adapter
            mAdapter = new AdvertisementAdapter(getApplicationContext(), mChildrenList, "AddAds");

            //Adding adapter to recyclerview
            mRecyclerView.setAdapter(mAdapter);
            mAdapter.notifyItemInserted(0);
0 голосов
/ 11 ноября 2018

Эта строка:

tuitionPackageList.add(0, new TuitionPackage(tuitionPackageList));

вы получаете ошибку, потому что вы создаете экземпляр TuitionPackage объекта с tuitionPackageList в качестве параметра, и я считаю, что это не правильно.
Ранее в коде вы сделали то же самое с помощью:

TuitionPackage tuitionPackage = new TuitionPackage();

и вы добавили элемент в конец списка.
Это тот элемент, который вы хотели добавить в позицию 0?
Редактировать изменить на это:

else {
    TuitionPackage tuitionPackage = new TuitionPackage();
    tuitionPackage.setPrice(mPriceView.getText().toString());
    tuitionPackageList.add(0, tuitionPackage);
    mPackageAdapter.notifyItemInserted(0);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...