Как определить, какой виджет Android вызывает мою функцию?

У меня есть несколько SeekBars в приложении для Android, которое делает практически то же самое (настройка низких частот, высоких частот, громкости). Чтобы сохранить ввод новых локальных классов для OnSeekBarChangeListener в SeekBarЯ попытался сделать один класс, который в своем onStopTrackingTouch определит, какой виджет вызывает его, и сделает правильные действия.

public class mySeekBar implements SeekBar.OnSeekBarChangeListener {
    int progressChanged = 0;

    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){
        progressChanged = progress;
    }

    public void onStartTrackingTouch(SeekBar seekBar) {}

    public void onStopTrackingTouch(SeekBar seekBar) {
          // i want a case statement here switched on the widget ID/name, so 
          // i can set the appropriate string s (bass, treble, volume)
        String s = "set_treble " + progressChanged;
        client.sendMessage(s);
    }

}

Как выяснить, какой виджет вызывает onStopTrackingTouch? Или есть более чистый или лучший способ сделать это?

1 ответ

Решение

100 % вы можете определить, как это;

public void onStopTrackingTouch(SeekBar seekBar) {
          // i want a case statement here switched on the widget ID/name, so 
          // i can set the appropriate string s (bass, treble, volume)
        String s = "set_treble " + progressChanged;
        client.sendMessage(s);

       switch (seekBar.getId()) {
                case R.id.seekVolume:

                    break;
                case R.id.bass:
                    break;
                case R.id.trouble:
                    break;
                default:
                    break;
                }
    }
Другие вопросы по тегам