Android отключает просмотр текста при наличии букв - PullRequest
0 голосов
/ 09 июня 2019

Мне нужна помощь по моему коду.

У меня есть 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");

                                }


                            }
                        });

                    }

1 Ответ

0 голосов
/ 09 июня 2019

Я решил проблему, достаточно было добавить «-» в длину, равную 5 и исключить условия длины, равные 6 и 7.

...