Пожалуйста, используйте этот, он отлично работает
sikbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
if(i>0){
editText.setText(String.valueOf(i));
editText.setSelection(String.valueOf(i).length());
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
В onTextChange Используйте этот
@Override
public void afterTextChanged(Editable editable) {
if (!editable.toString().isEmpty()) {
int progress = Math.round(Float.parseFloat(editable.toString()));
sikbar.setProgress(progress);
}
else {
sikbar.setProgress(0);
}
// этот слушатель предназначен только для стирания всего текста одним нажатием. введите код здесь
editText.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
//You can identify which key pressed buy checking keyCode value with KeyEvent.KEYCODE_
if(keyCode == KeyEvent.KEYCODE_DEL) {
//this is for backspace
mCountDownTimer.start();
}
return false;
}
});
В onTextChange Проверьте размер ввода, в противном случае выдается исключение.
добавьте таймер один за другим чистый текст после нескольких se c и сначала запустите таймер Keylistener.
CountDownTimer mCountDownTimer(global variable);
mCountDownTimer = new CountDownTimer(1200, 1000) {
boolean mText=true;
public void onTick(long millisUntilFinished) {
String mainText = editText.getText().toString().trim();
if(mainText.length()>0&& !mText){
String text=mainText.substring(0, mainText.length() - 1);
editText.setText(text);
editText.setSelection(editText.getText().length());
mText=true;
}
}
public void onFinish() {
String mainText = editText.getText().toString().trim();
if(mainText.length()==0)
{
mCountDownTimer.cancel();
mText=true;
}
else{
mCountDownTimer.start();
mText=false;
}
}
};