Android 通过在recyclerview中单击按钮在特定文本视图中增加值

Android 通过在recyclerview中单击按钮在特定文本视图中增加值,android,button,android-recyclerview,counter,increment,Android,Button,Android Recyclerview,Counter,Increment,我正在开发一个应用程序,它可以使用recycler view和volley显示图像。我在每张卡上都有imageview、textview和按钮。我正在尝试向我的按钮添加功能,当单击按钮时,将计算单击次数并在文本视图中显示它。当我单击按钮时,所有d行中的所有文本视图都会以相同的单击次数更新,无论在任何行上单击了哪个按钮。我只想更新点击了d按钮的d行的文本视图。我做错了什么?这是密码 import android.content.Context; import android.media.Image

我正在开发一个应用程序,它可以使用recycler view和volley显示图像。我在每张卡上都有imageview、textview和按钮。我正在尝试向我的按钮添加功能,当单击按钮时,将计算单击次数并在文本视图中显示它。当我单击按钮时,所有d行中的所有文本视图都会以相同的单击次数更新,无论在任何行上单击了哪个按钮。我只想更新点击了d按钮的d行的文本视图。我做错了什么?这是密码

import android.content.Context;
import android.media.Image;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ProgressBar;
import android.widget.TextView;

import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.NetworkImageView;

import org.w3c.dom.Text;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Belal on 11/9/2015.
 */

public class CardAdapter extends RecyclerView.Adapter<CardAdapter.ViewHolder> {
    int count = 0;

    //Imageloader to load image
    private ImageLoader imageLoader;
    private Context context;

    //List to store all superheroes
    List<SuperHero> superHeroes;

    //Constructor of this class
    public CardAdapter(List<SuperHero> superHeroes, Context context){
        super();
        //Getting all superheroes
        this.superHeroes = superHeroes;
        this.context = context;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.superheroes_list, parent, false);
        ViewHolder viewHolder = new ViewHolder(v);
        return viewHolder;
    }



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



        //Getting the particular item from the list
        SuperHero superHero =  superHeroes.get(position);

        //Loading image from url
        imageLoader = CustomVolleyRequest.getInstance(context).getImageLoader();
        imageLoader.get(superHero.getImageUrl(), ImageLoader.getImageListener(holder.imageView, R.drawable.image, android.R.drawable.ic_dialog_alert));

        //Showing data on the views
        holder.imageView.setImageUrl(superHero.getImageUrl(), imageLoader);
        holder.textViewName.setText(superHero.getName());
        holder.textViewPublisher.setText(superHero.getPublisher());
        holder.textViewLikes.setText(superHero.getLikes());

        holder.custom_button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                count ++;
                holder.txtCount.setText(String.valueOf(count));

                }

            });
    }



    @Override
    public int getItemCount() {
        return superHeroes.size();
    }


    class ViewHolder extends RecyclerView.ViewHolder{
        //Views
        public NetworkImageView imageView;
        public TextView textViewName;
        public TextView textViewPublisher;
        public TextView textViewLikes;
        public TextView txtCount;
        public ImageButton custom_button;
        //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);
            textViewLikes = (TextView) itemView.findViewById(R.id.textViewlikes);
            txtCount = (TextView)itemView.findViewById(R.id.txtCount);
            custom_button = (ImageButton) itemView.findViewById(R.id.custom_button);
        }


    }

}
导入android.content.Context;
导入android.media.Image;
导入android.support.v7.widget.RecyclerView;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.Button;
导入android.widget.ImageButton;
导入android.widget.ProgressBar;
导入android.widget.TextView;
导入com.android.volley.toolbox.ImageLoader;
导入com.android.volley.toolbox.NetworkImageView;
导入org.w3c.dom.Text;
导入java.util.ArrayList;
导入java.util.List;
/**
*由Belal于2015年11月9日创建。
*/
公共类CardAdapter扩展了RecyclerView.Adapter{
整数计数=0;
//Imageloader以加载图像
私有图像加载器;
私人语境;
//存储所有超级英雄的列表
列出超级英雄;
//这个类的构造函数
公共卡适配器(列出超级英雄、上下文){
超级();
//获得所有超级英雄
这个。超级英雄=超级英雄;
this.context=上下文;
}
@凌驾
public ViewHolder onCreateViewHolder(视图组父级,int-viewType){
视图v=LayoutInflater.from(parent.getContext())
.充气(R.layout.Superheros\u列表,父级,错误);
视窗夹持器视窗夹持器=新视窗夹持器(v);
返回视图持有者;
}
@凌驾
公共无效onBindViewHolder(最终ViewHolder,内部位置){
//从列表中获取特定项
超级英雄超级英雄=超级英雄。获取(位置);
//从url加载图像
imageLoader=CustomVolleyRequest.getInstance(上下文).getImageLoader();
imageLoader.get(superHero.getImageUrl(),imageLoader.getImageListener(holder.imageView,R.drawable.image,android.R.drawable.ic_对话框_警报));
//显示视图上的数据
holder.imageView.setImageUrl(superHero.getImageUrl(),imageLoader);
holder.textViewName.setText(superHero.getName());
holder.textViewPublisher.setText(superHero.getPublisher());
holder.textViewLikes.setText(superHero.getLikes());
holder.custom_button.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
计数++;
holder.txtCount.setText(String.valueOf(count));
}
});
}
@凌驾
public int getItemCount(){
返回超级英雄。大小();
}
类ViewHolder扩展了RecyclerView.ViewHolder{
//观点
公共网络图像视图;
公共文本视图文本视图名称;
公共文本视图文本视图发布者;
公共文本视图文本视图;
公共文本视图txtCount;
公共图像按钮自定义按钮;
//初始化视图
公共视图持有者(视图项视图){
超级(项目视图);
imageView=(NetworkImageView)itemView.findViewById(R.id.imageViewHero);
textViewName=(TextView)itemView.findViewById(R.id.textViewName);
textViewPublisher=(TextView)itemView.findViewById(R.id.textViewPublisher);
textViewLikes=(TextView)itemView.findViewById(R.id.textViewLikes);
txtCount=(TextView)itemView.findViewById(R.id.txtCount);
自定义按钮=(ImageButton)itemView.findViewById(R.id.custom按钮);
}
}
}

您正在更新定义为类成员的变量(
count
)。你的取景器应该为每个实例都有自己的计数器,然后为每张卡使用该值。你有什么解决方案吗?我也像那个问题一样寻找和挣扎,回收器视图,每行项目的likes计数任意次数能够喜欢和喜欢api的计数数据如何更新特定列表项目视图上的api响应您正在更新定义为类成员的变量(
count
)。你的视图持有者应该为每个实例都有自己的计数器,然后为每个卡使用该值。你有什么解决方案吗?我也在寻找和解决这个问题,回收器视图,每行项目的喜欢次数,可以喜欢多少次,喜欢多少次api数据如何更新特定列表项目视图上的api响应