安卓禁用文本观察器,当有字母



我需要代码方面的帮助。

我有一个editText,用户输入商店的开门和关门时间,并且有一个带有"关闭"的checkbox

用户输入09:00的打开时间,然后使用Text Watcher添加一个空格和一个破折号,用户输入关闭时间19:00,以便在最后时间09:00 - 19:00

例如,如果商店在星期六关闭,则用户必须单击checkbox,单击checkbox时,editText设置了文本并显示"已关闭"。

问题是当我使用 Text Watcher ,如果长度等于 6,它会添加连字符,然后当用户单击复选框而不是写"关闭"时,它说"关闭-"。

如何删除破折号?

有一种情况是,当editText中只有字母时,Text Watcher会关闭。

有没有人能解决我的问题,你对我有什么建议吗?

@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");
                                }

                            }
                        });
                    }

我解决了这个问题,在等于 5 的长度中添加"-"并消除长度等于 6 和 7 的条件就足够了。

相关内容

  • 没有找到相关文章

最新更新