喜欢不像按钮recyclerView图像

时间:2017-08-07 15:02:50

标签: android button android-recyclerview adapter

我有一个Android应用程序,用户可以喜欢和不同的图像。我正在使用recyclerView.I只需在用户点击后禁用按钮(喜欢/不同)。问题是,当我点击按钮时,应用程序转到主要活动,按钮Like不会改变为与我所做的不同:

1 ) layout that holds the each recycler view layout item

2 ) A view holder for creating each layout

3 ) A Model Class to holds the data

4 ) Recycler Adaptor which deals with the data for the Each Layout item

Hier是我的观点持有人

//Initializing Views
        public ViewHolder(View itemView) {
            super(itemView);
            imageView = (NetworkImageView)      itemView.findViewById(R.id.imageViewHero);
            textViewName = (TextView) itemView.findViewById(R.id.textViewName);
            //textViewPublisher = (TextView) itemView.findViewById(R.id.textViewPublisher);
            likeImageView = (ImageView) itemView.findViewById(R.id.likeImageView);
            likeImageView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {


                    int id = (int)likeImageView.getTag();
                    if( id == R.drawable.ic_like){

                        likeImageView.setTag(R.drawable.ic_liked);
                        likeImageView.setImageResource(R.drawable.ic_liked);                       

                    }else{

                        likeImageView.setTag(R.drawable.ic_like);
                        likeImageView.setImageResource(R.drawable.ic_like);               


                    }

                }
            });

1 个答案:

答案 0 :(得分:0)

我一遍又一遍地回答了这类问题。你没有足够的搜索,你也不了解ListView或RecycleView的工作原理。更改当前视图状态(例如更改TextView文本或更改ImageView资源)是错误的。您需要数据集(与ListView中的项相关的列表),您需要更改列表的相应数据并调用适配器的notifyDataSetChanged()方法。

不要忘了。每次列表中的任何视图出现在屏幕上时,都会调用适配器的getView()方法,如果只更新视图(而不是更改数据),则视图将显示项目的过去值,因为您的数据没有改变。

查看下面的链接,详细了解ListView和RecycleView的工作原理。

How ListView's recycling mechanism works

相关问题