use textwatcher instead of onTextChange