我无法通过实现OnSeekBarChangeListener接口在多个TextView中获取多个SeekBar值。

通过匿名类,我已经实现了这一点,但是我希望这种方式适用于我的应用程序。

seekBar1.setOnSeekBarChangeListener(this);
}
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
switch (seekBar.getId()){
case R.id.seek1:{
seek1Val=String.valueOf(2000+i*1000);
tvAmount.setText(seek1Val);}
break;
case R.id.seek2:{
seek2Val = String.valueOf(0+i*.5);
tvRate.setText(seek2Val);
}
break;
}


我希望每个TextView中的输出都适用于不同的SeekBar,但是对于每个SeekBar来说,进度值是相同的。

最佳答案

最好为每个setOnSeekBarChangeListener添加不同的SeekBar

或者,如果您不想这样做,请使用tag代替id

最好的是:

 seekBar1.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                seek1Val=String.valueOf(2000+i*1000);
                tvAmount.setText(seek1Val);}
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });

 seekBar2.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                seek2Val = String.valueOf(0+i*.5);
                tvRate.setText(seek2Val);
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });

10-08 16:43