在我的android项目的主要类中,我有大约六个监听器,具有以下结构:
temp.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable arg0) {
}
public void beforeTextChanged(CharSequence s, int arg1, int arg2, int arg3) { }
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { }
});
但它有点杂乱......我想要做的目标是创建一个通用类,例如TextBox,它包含所有的侦听器。按钮与其听众一样。 你明白吗?我怎么能这样做?
使用这个系统,我可以用这种方式调用方法:
temp.addTextChangedListener(TextBox.temp())
test.addTextChangedListener(TextBox.test())
如果我已经解释得很严重,请告诉我。 感谢。
答案 0 :(得分:0)
使用所有侦听器定义类:
Class Listeners {
public class Listener1 extends EditView.TextChangedListener{
...
}
}
然后根据需要实例化它们:
temp.addTextChangedListener(new Listeners.Listener1());
答案 1 :(得分:0)
在你计划实现的类中(比如说TextBox),根据需要创建尽可能多的方法,应该返回例如TextWatcher接口的匿名实现 看一看:
public class TextBox{
public static TextWatcher temp(){
return new TextWatcher() {
public void afterTextChanged(Editable arg0) {
}
public void beforeTextChanged(CharSequence s, int arg1, int arg2, int arg3) { }
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { }
};
}
}
使用它:
temp.addTextChangedListener(TextBox.temp());
我不喜欢这种方法,但仍然希望它有所帮助......, 我建议你阅读这篇文章:
http://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html
http://docs.oracle.com/javase/tutorial/uiswing/events/
在处理事件和听众时,他们会给你一些常见设计模式的想法......