Мне нужна помощь по моему коду.
У меня есть editText
, где пользователь вводит время открытия и закрытия магазина, и есть checkbox
с надписью "Закрыть".
Пользователь вводит время открытия 09:00
, а затем с помощью Text Watcher
я добавляю пробел и тире, а пользователь вводит время закрытия 19:00
, так что в конце время будет 09:00 - 19:00
.
Например, если магазин закрыт в субботу, пользователь должен щелкнуть checkbox
, а когда нажата checkbox
, у editText
будет установлен текст с надписью «Закрыто».
Проблема в том, что когда я использую Text Watcher
, если длина равна 6, он добавляет дефис, а затем, когда пользователь нажимает на флажок вместо того, чтобы писать «Закрыто», он говорит «Закрыто-».
Как я могу удалить эту черту?
Есть условие, когда Text Watcher
отключается, когда в editText
.
есть только буквы.решение моей проблемы, у вас есть какой-нибудь совет для меня?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_insert__orari);
lunedi_inizio_uno = (EditText)findViewById(R.id.editText_uno_lunedi_inizio);
lunediUno = (CheckBox)findViewById(R.id.checkBox_uno_lunedi);
lunedi_inizio_uno.addTextChangedListener(new TextWatcher() {
int keyDell;
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
lunedi_inizio_uno.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DEL)
keyDell = 1;
int prevL = 0;
return false;
}
});
if (keyDell == 0) {
int len = lunedi_inizio_uno.getText().length();
if(len == 5) {
lunedi_inizio_uno.setText(lunedi_inizio_uno.getText() + " ");
lunedi_inizio_uno.setSelection(lunedi_inizio_uno.getText().length());
}if(len == 6) {
lunedi_inizio_uno.setText(lunedi_inizio_uno.getText() + "-");
lunedi_inizio_uno.setSelection(lunedi_inizio_uno.getText().length());
}if(len == 7) {
lunedi_inizio_uno.setText(lunedi_inizio_uno.getText() + " ");
lunedi_inizio_uno.setSelection(lunedi_inizio_uno.getText().length());
}
} else {
keyDell = 0;
}
}
@Override
public void afterTextChanged(Editable arg0) {
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
}
});
lunediUno.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (((CheckBox) v).isChecked()) {
lunedi_inizio_uno.setText("Chiuso");
}
}
});
}