如何在适配器的顶部显示新项目?

时间:2018-11-08 16:45:06

标签: android android-studio

如何在适配器的顶部显示新数据?这是代码:-

对不起,刚才我发现我错误地复制了代码。对不起这是我的错。现在的问题是我想在适配器顶部显示最新的广告。...

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 :(得分:1)

此行:

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);
}

答案 1 :(得分:1)

用此替换最后一个else块

    TuitionPackage tuitionPackage = new TuitionPackage();
    tuitionPackage.setPrice(mPriceView.getText().toString());
    tuitionPackageList.add(tuitionPackage);
    mPackageAdapter.notifyDataSetChanged();

答案 2 :(得分:0)

在上面的代码的帮助下,这是我的答案,将第一个广告排在最高位置:-

//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);