只刷新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;
}
}
我只想刷新列表项的一个参数,其中列表项包含增加或减少值和微调器的规定。
当我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;
}
}