Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android listview类按钮增加适配器中textview的值_Android_Android Listview_Android Adapterview - Fatal编程技术网

Android listview类按钮增加适配器中textview的值

Android listview类按钮增加适配器中textview的值,android,android-listview,android-adapterview,Android,Android Listview,Android Adapterview,我正在使用自定义适配器来管理listview。我每行有一个按钮和文本视图。现在我想在点击按钮时添加喜欢不喜欢的功能。但我面临的问题是,当用户滚动列表时,它会回收上一个列表项,当它再次出现时,它不会在textview中显示类似的增量 如何解决这个问题?有好的例子吗 下面是适配器代码 public class ReviewAdapter extends BaseAdapter { protected static final String TAG = "ReviewAdapter"; privat

我正在使用自定义适配器来管理listview。我每行有一个按钮和文本视图。现在我想在点击按钮时添加喜欢不喜欢的功能。但我面临的问题是,当用户滚动列表时,它会回收上一个列表项,当它再次出现时,它不会在textview中显示类似的增量

如何解决这个问题?有好的例子吗

下面是适配器代码

public class ReviewAdapter extends BaseAdapter {

protected static final String TAG = "ReviewAdapter";
private Activity activity;
private ArrayList<HashMap<String, String>> data;
private static LayoutInflater inflater = null;
public ImageLoader imageLoader;


private HashMap<Integer, Integer> mCountHash;

public ReviewAdapter(Activity a, ArrayList<HashMap<String, String>> d) {
    activity = a;
    data = d;
    inflater = (LayoutInflater) activity
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    imageLoader = new ImageLoader(activity.getApplicationContext());
    mCountHash = new HashMap<Integer, Integer>();
}

@Override
public int getCount() {
    return data.size();
}

@Override
public Object getItem(int position) {
    return position;
}

@Override
public long getItemId(int position) {
    return position;
}

/**
 * 
 * @author
 * 
 */
public static class ViewReviewHolder {  
    TextView reviewLikeCount;
    TextView reviewLikeText;        
    Button likeBtn;
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    View vi = convertView;
    final ViewReviewHolder viewHolder;
    if (vi == null) {
        vi = inflater.inflate(R.layout.review_row, null);
        viewHolder = new ViewReviewHolder();

        viewHolder.reviewLikeCount = (TextView) vi
                .findViewById(R.id.review_total_likes_count);

        viewHolder.reviewLikeText = (TextView) vi
                .findViewById(R.id.review_total_likes_text);
        viewHolder.reviewCommentCount = (TextView) vi
                .findViewById(R.id.review_total_comment_count);

        viewHolder.likeBtn = (Button) vi.findViewById(R.id.review_like_btn);

        vi.setTag(viewHolder);

    } else {
        viewHolder = (ViewReviewHolder) vi.getTag();
        viewHolder.reviewLikeCount.setText("");     
        viewHolder.reviewLikeText.setVisibility(View.GONE);


    }

    // Like

    // likeBtn.setTag(position);

    HashMap<String, String> reviewData = new HashMap<String, String>();
    reviewData = data.get(position);

    // Setting all values in list view


    // Like Count
    if (reviewData.get(ListActivityReview.KEY_REVIEW_LIKE_COUNT).isEmpty()) {
        mCountHash.put(position, 0);
    } else {

        mCountHash.put(position, Integer.parseInt(reviewData
                .get(ListActivityReview.KEY_REVIEW_LIKE_COUNT)));
        viewHolder.reviewLikeCount.setText(reviewData
                .get(ListActivityReview.KEY_REVIEW_LIKE_COUNT));
        viewHolder.reviewLikeCount.setVisibility(View.VISIBLE);
        viewHolder.reviewLikeText.setVisibility(View.VISIBLE);
    }


    /*
     * viewHolder.reviewLikeCount.setTag(position);
     * viewHolder.likeBtn.setTag(position);
     */
    viewHolder.likeBtn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            Log.d(TAG, "Pos :" + position);
            Log.d(TAG, "value " + mCountHash.get(position));
            viewHolder.reviewLikeCount.setText(String.valueOf(mCountHash
                    .get(position) + 1));
            viewHolder.reviewLikeCount.setVisibility(View.VISIBLE);
            viewHolder.reviewLikeText.setVisibility(View.VISIBLE);              

        }
    });

    return vi;
}
公共类ReviewAdapter扩展BaseAdapter{
受保护的静态最终字符串标记=“ReviewAdapter”;
私人活动;
私有数组列表数据;
专用静态充气机=空;
公共图像加载器;
私有HashMap-mCountHash;
公共审核适配器(活动a,阵列列表d){
活动=a;
数据=d;
充气器=(充气器)活动
.getSystemService(上下文布局\充气机\服务);
imageLoader=新的imageLoader(activity.getApplicationContext());
mCountHash=newhashmap();
}
@凌驾
public int getCount(){
返回data.size();
}
@凌驾
公共对象getItem(int位置){
返回位置;
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
/**
* 
*@作者
* 
*/
公共静态类ViewReviewWholder{
TextView reviewLikeCount;
TextView ReviewLiketText;
按钮式EBTN;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
视图vi=转换视图;
最终视图查看文件夹视图持有者;
如果(vi==null){
vi=充气机。充气(R.layout.review_row,空);
viewHolder=新的ViewReviewWholder();
viewHolder.reviewLikeCount=(TextView)vi
.findViewById(R.id.审查\总数\喜好\计数);
viewHolder.reviewLiketText=(TextView)vi
.findViewById(R.id.review\u total\u likes\u text);
viewHolder.reviewCommentCount=(TextView)vi
.findViewById(R.id.审查、总计、评论、计数);
viewHolder.likeBtn=(按钮)vi.findviewbyd(R.id.review\u like\u btn);
vi.setTag(视图持有者);
}否则{
viewHolder=(ViewReviewHolder)vi.getTag();
viewHolder.reviewLikeCount.setText(“”);
viewHolder.reviewLiketText.setVisibility(View.GONE);
}
//像
//如设置标签(位置);
HashMap reviewData=新HashMap();
reviewData=data.get(位置);
//在列表视图中设置所有值
//像伯爵一样
if(reviewData.get(ListActivityReview.KEY\u REVIEW\u LIKE\u COUNT.isEmpty()){
mCountHash.put(位置0);
}否则{
mCountHash.put(位置,整数.parseInt(reviewData
.get(ListActivityReview.KEY_REVIEW_LIKE_COUNT));
viewHolder.reviewLikeCount.setText(reviewData
.get(ListActivityReview.KEY_REVIEW_LIKE_COUNT));
viewHolder.reviewLikeCount.setVisibility(View.VISIBLE);
viewHolder.ReviewLiketText.setVisibility(View.VISIBLE);
}
/*
*viewHolder.reviewLikeCount.setTag(位置);
*viewHolder.likeBtn.setTag(位置);
*/
viewHolder.likeBtn.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
日志d(标签“位置:”+位置);
Log.d(标记,“value”+mCountHash.get(位置));
viewHolder.reviewLikeCount.setText(String.valueOf(mCountHash
.获得(职位)+1);
viewHolder.reviewLikeCount.setVisibility(View.VISIBLE);
viewHolder.ReviewLiketText.setVisibility(View.VISIBLE);
}
});
返回vi;
}

}

可能存在@Nimit的重复请尝试在getView()中从ViewHolder定义中删除final()@Nimit hi…您有没有找到解决方案??你能帮帮我吗?我也面临同样的问题