只刷新recycler视图中list item的一个参数 item contains increment + decrement + spinner

Refresh only one parameter of list item in recycler view item contains increment + decrement + spinner

我只想刷新列表项的一个参数,其中列表项包含增加或减少值和微调器的规定。

当我select微调器值并通过notify datachange()增加和刷新项目时,微调器的值在我每次增加或减少时都默认。

如何解决这个问题?

终于找到解决办法了。 我只取一个 Boolean isFirstTimeInflate = true; 第一次在适配器中膨胀所有视图。 当项目位置 == list.size(); 使 isFirstTimeInflate = false;

@Override
    public void onBindViewHolder(final CardViewHolder holder, final int position) {
        final Category category = categories.get(position);

        holder.plus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                EventBus.getDefault().post(new ActionEvent(category, position, true, false));
            }
        });

        holder.minus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                EventBus.getDefault().post(new ActionEvent(category, position, false, true));
            }
        });

        if (isFirstTimeInflate) {
            value.setAdapter(new SpinnerAdapter(context, R.layout.points_spinner_row, category.getAvailableCards()));
            value.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                    category.setValue(category.getAvailableCards().get(position));
                }

                @Override
                public void onNothingSelected(AdapterView<?> parent) {

                }
            });
        }

        count.setText(category.getCount() + "");
        if (position == categories.size()-1) {
            isFirstTimeInflate = false;
        }
    }