У меня есть небольшая проблема в моем коде:Android Циклические слушатели
У меня есть SeekBar
и EditText
в макете. Что я хочу сделать, это установить значение EditText
, когда SeekBar
изменится и установите SeekBar
при изменении EditText
.
До сих пор, у меня есть следующий код:
SeekBar seek_coagulation = (SeekBar) findViewById(R.id.seek_coagulation);
EditText edit_coagulation = (EditText) findViewById(R.id.edit_coagulation);
seek_coagulation.incrementProgressBy(1);
seek_coagulation.setMax(1000);
seek_coagulation.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
{
double value = progress/100.0;
edit_coagulation.setText(String.valueOf(value));
}
public void onStartTrackingTouch(SeekBar seekBar)
{
}
public void onStopTrackingTouch(SeekBar seekBar)
{
}
});
edit_coagulation.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s)
{
double value = (s != null && s.toString().length() > 0) ? Double.parseDouble(s.toString().replace(',', '.')) : 0D;
int progress = (int) (value * 100);
seek_coagulation.setProgress(progress);
}
public void beforeTextChanged(CharSequence s, int start, int count, int after)
{
}
public void onTextChanged(CharSequence s, int start, int before, int count)
{
}
});
Первый случай (SeekBar
к EditText
) работает хорошо, но не второй. Проблема в том, что это петля (SeekBar
- EditText
- SeekBar
- EditText
и т. Д.).
Есть ли способ исправить это?
Я думаю, что вы выбрали какой-то другой подход liek, возьмите одну кнопку, которая установит значение EditText в панель поиска, когда будет нажата кнопка щелчка вместо EditText addTextChangedListener. –