嵌入在视图中的自定义视图之间的通信

时间:2011-01-03 16:08:17

标签: android

我已经基于默认的android小部件(Button,ProgressBar)创建了一些扩展的UI控件。在某些时候,在自定义控件中,我想与包含自定义控件的视图进行通信。例如,我想传递ProgressBar的当前值或Button中的值。 什么是最好的方法?是否可以创建自定义事件(如“onClick”),然后在容器类中有一个处理程序?还是有一些更好的方法? 先感谢您! ;)

1 个答案:

答案 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())。它也可以返回无效。