我已经基于默认的android小部件(Button,ProgressBar)创建了一些扩展的UI控件。在某些时候,在自定义控件中,我想与包含自定义控件的视图进行通信。例如,我想传递ProgressBar的当前值或Button中的值。 什么是最好的方法?是否可以创建自定义事件(如“onClick”),然后在容器类中有一个处理程序?还是有一些更好的方法? 先感谢您! ;)
答案 0 :(得分:0)
如果“某点”是事件发生的时候(比如按下按钮),您可以创建一个事件监听器界面。
在我的自定义视图中,我把它放在:
private OnFlingListener flingListener;
// my event listener interface
public interface OnFlingListener {
public abstract boolean onFling(View v, int direction);
}
public void setOnFlingListener(OnFlingListener l) {
flingListener = l;
}
// ........my custom view code.......
// event handling now
private void flingRight() {
if(flingListener != null) {
if(flingListener.onFling(this, FLING_TO_RIGHT))
showPrevious();
} else {
showPrevious();
}
}
这样我可以像OnFlingListener
一样实施OnClickListener
。
编辑:
我的onFling
返回一个布尔值,因为我想决定是否接受或取消该事件(参见flingRight()
)。它也可以返回无效。