Как определить, какой виджет Android вызывает мою функцию?
У меня есть несколько SeekBar
s в приложении для 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;
}
}