Я нашел способ добиться такого поведения, когда я переопределяю метод ArrayAdapter getView()
, я установил атрибут тега SeekBar с позицией текущего элемента. так что это помогает мне извлечь соответствующий элемент при выполнении обратного вызова onProgressChanged(...)
. в то же время он позволяет мне обновить соответствующий объект внутри, который содержится в адаптере.
sbProgress.setTag(position);
sbProgress.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
View view = (View) seekBar.getParent();
if(view != null){
TextView tvProgress = (TextView)view.findViewById(R.id.tv_porcentaje_numerico_obtenido);
tvProgress.setText(progress + "%");
MyAdapter.this.getItem((Integer)seekBar.getTag()).setProgres(progress);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {}
});
Вот изображение, которое объясняет, что я имею в виду
Надеюсь, это кому-нибудь пригодится.