この方法ならしっくりくるし疑問はないんですが、無名クラス使うと�Dが出来ませんよね?
そこが不思議で仕方ないんです。
new とする度にメモリー上にTextWatch()が生成されていくのではないのですか?

・new 1回目
メモリー上にTextWatch1が生成されて、addTextChangedListenerでこの1のアドレスが結び付く

・new 2回目
メモリー上にTextWatch2が生成されて、addTextChangedListenerでこの2のアドレスが結び付く
先ほど生成されたTextWatch1は残り続け、アプリが終了するまで解放されない?

こんな感じのイメージをもってるんですが、大間違いなんでしょうか…。
addTextChangedListenerはカスタムダイアログ生成時に何度も呼び出しているので気になってます