0

每当用户输入 dd 和 mm 值时,我都会尝试'/'在 dd 和 mm 之后自动附加日期分隔符,但问题是在附加日期分隔符后我无法删除分隔符,既不按退格键也不按删除

public void afterTextChanged(Editable s) 
{
    if(s.length() == 2)
    {
        lst_date = let_date.getText().toString();
        lst_date = lst_date.concat("/");
        let_date.setText(lst_date.toString());
        Log.v(TAG,"VAlue is s:"+ s.length() +" date:"+ lst_date);
        let_date.setSelection(let_date.length());
    }
    else if(s.length() == 5)
    {
        lst_date = let_date.getText().toString();
        lst_date = lst_date + "/";
        let_date.setText(lst_date);

        let_date.setText(lst_date.toString());
        Log.v(TAG,"VAlue is s:"+ s.length() +" date:"+ lst_date);

        let_date.setSelection(let_date.length());
    }

}
4

1 回答 1

1

这是我的猜测。并不是说您不能删除“/”,而是在它刚被删除后立即通过您的方法添加回来。即,当您按下退格键时,它会删除“/”,然后afterTextChanged()被调用并看到 s.length() 是 2 或 5,从而将“/”添加回来。

于 2013-02-23T11:10:15.360 回答