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 に答える