首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在适配器类和activity中一起使用接口

如何在适配器类和activity中一起使用接口
EN

Stack Overflow用户
提问于 2018-06-29 03:51:54
回答 1查看 40关注 0票数 0

当按下一个项目(在RecyclerView中)中的移动按钮时,如何更新操作栏中的项目计数?

我的WishlistActivity

代码语言:javascript
复制
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_wishlist);

        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        dbHelper = new DatabaseHelper(this);

        ActionBar actionBar = getSupportActionBar();
        actionBar.setTitle("Wishlist");
        toolbar.setTitleTextColor(Color.WHITE);
        actionBar.setDisplayHomeAsUpEnabled(true);
        actionBar.setHomeButtonEnabled(true);

        wishlistRecycler = (RecyclerView) findViewById(R.id.wishlist_recycler);
        GridLayoutManager layoutManager = new GridLayoutManager(this,2,GridLayoutManager.VERTICAL,false);
        wishlistRecycler.setLayoutManager(layoutManager);
        wishlistRecycler.addItemDecoration(new Space(2,20,true,0));
        adapter = new wishlistAdapter(itemsWish,getApplicationContext(),cartCounter);
        wishlistRecycler.setAdapter(adapter);

        wish_count = dbHelper.getWishCount();
        emptyLayout = (RelativeLayout) findViewById(R.id.emptyWishLayout);
        wishLayout = (RelativeLayout) findViewById(R.id.wishLayout);
        contShopp = (Button) findViewById(R.id.continueShope);

        cartCounter = new MoveWishlistToCart() {
            @Override
            public void setCounter(int count) {
                Toast.makeText(WishlistActivity.this, "Called", Toast.LENGTH_SHORT).show();
                Log.d("Log","cartCounter: "+count);
            }
        };

我的wishlistAdapter类

代码语言:javascript
复制
public wishlistAdapter(List<WishlistItems> wishItems, Context context, MoveWishlistToCart cartCounter) {
        this.wishItems = wishItems;
        this.context = context;
        this.cartCounter = cartCounter;
    }

    @NonNull
    @Override
    public myViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

        View rootView;
        rootView = LayoutInflater.from(context).inflate(R.layout.wish_list,null,false);

        return new myViewHolder(rootView);
    }

    @Override
    public void onBindViewHolder(@NonNull myViewHolder holder, final int position) {

        WishlistItems wishlistItems = wishItems.get(position);
        dbHelper = new DatabaseHelper(context);

        wish_sku = wishlistItems.getWishItemSku();
        price = wishlistItems.getWishItemPrice();
        sCount = dbHelper.getCountTotal();

        holder.textBrandName.setText(wishlistItems.getWishItemBrandName());
        holder.textPrice.setText("₹"+wishlistItems.getWishItemPrice());

        String imageUrl = wishItems.get(position).getWishImage();
        Picasso.with(context).load("http://www.app.ssmkanmanam.com/public/images/"+imageUrl).into(holder.mImageview);

        holder.mRemove.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //Toast.makeText(activity, "Hii", Toast.LENGTH_SHORT).show();
                removeFromWishlistDb(position);
                wishItems.remove(position);
                notifyDataSetChanged();
            }
        });

        holder.textMoveToBag.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                removeFromWishlistDb(position);
                wishItems.remove(position);
                notifyDataSetChanged();
                moveToCartDb();

                cartCounter.setCounter(1);


            }
        });
    }

我的接口类

代码语言:javascript
复制
public interface MoveWishlistToCart {
    public void setCounter(int count);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-29 04:01:02

之所以会发生这种情况,是因为最初您向适配器传递了一个空的MoveWishlistToCart,然后在初始化它之后。移动代码:

代码语言:javascript
复制
cartCounter = new MoveWishlistToCart() {
        @Override
        public void setCounter(int count) {
            Toast.makeText(WishlistActivity.this, "Called", Toast.LENGTH_SHORT).show();
            Log.d("Log","cartCounter: "+count);
        }
    };

在这条线上:

代码语言:javascript
复制
adapter = new wishlistAdapter(itemsWish,getApplicationContext(),cartCounter);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51090349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档