Установка значения SeekBar
Я создаю простое приложение для расчета высоты, используя SeekBar и два TextView.
Первый предназначен для ног, а второй для дюймов.
Я хочу, чтобы, если значение превысило 12, оно автоматически сбрасывалось на 0, а высота увеличивалась на 1.
Как я могу это сделать?
Это то, что я сделал до сих пор:
height_seekbar.setProgress(68);
height_feet_textview.setText(String.valueOf(5));
height_inches_textview.setText(String.valueOf(8));
height_seekbar
.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
// height_seekbar_textview.setText(seekBar.getProgress()
// + " ");
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onProgressChanged(SeekBar seekBar,
int progress, boolean fromUser) {
// TODO Auto-generated method stub
//progress += 60;
int feet = progress / 12;
int inches = (progress % 12);
height_feet_textview.setText(String.valueOf(feet));
height_inches_textview.setText(String.valueOf(inches));
Log.i("BodyProfileHeightWeightActivity",
"Progress of seekbar" + progress);
// if (progress >= 12) {
//
// height_seekbar_textview.setText(0);
//
// }
// String heightSelected = String.valueOf(progress);
// height_seekbar_textview.setText(heightSelected);
}
});
2 ответа
Решение
Применить ниже логики:
@Override
public void onProgressChanged(SeekBar seekBar,
int progress, boolean fromUser) {
// TODO Auto-generated method stub
progress += 60;
int feet = progress / 12;
int inches = progress % 12;
txt_feet.setText(String.valueOf(feet));
txt_inches.setText(String.valueOf(inches));
}
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if(progress>=12){
seekBar.setProgress(0);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});