美文网首页
Java中回调接口的简单使用

Java中回调接口的简单使用

作者: 毕设邦 | 来源:发表于2016-08-10 10:00 被阅读314次

    先推荐一个github上的blog集合:https://github.com/ZQiang94/Andriod-collect-blogs

    Coding过程中可能会类似于这种的情景,删除ListView指定位置的item,这时候有多种实现方式,可以在适配器中,也可以使用回调的方式,将点击的item的索引回传到ui上,例如Fragment

    或者Activity。然后再ui中得到相应item的索引来调用适配器(Adapter)的notifyDataSetChanged方法刷新listView。

    要使用回调来实现类似的功能,大体有以下几个部分。具体根据自己实际情况而定。

    这里以上面例子中描述的场景使用接口回调的方式来实现。

    1.创建回调接口

    public interface OnButtonListener {

    voidCallBack(int position);

    }

    2.“接口绑定”

    lvAdapter.setOnButtonListener(this);

    实际就是将实现接口的实例以参数的形式传到要调用的类中,为此也可以这样写:

    lvAdapter.setOnButtonListener(newOnButtonListener() {

    @Override

    publicvoidCallBack(int position) {

    list.remove(position);

    lvAdapter.notifyDataSetChanged();

    mTextView.setText("当前item个数为:"+ list.size() +"");

    }

    });

    3.实现接口,就是实现前面创建接口的方法,把本应该在另一个类中发生的动作拿到这个方法中实现。

    下面这种写法是在接口绑定方法中传递的实现回调接口的类的实例,上面是直接new了一个实例。

    故,这两种写法都对。

    @Override

    publicvoidCallBack(int position) {

    list.remove(position);

    lvAdapter.notifyDataSetChanged();

    }

    4.在调用回调接口的类中要创建该回调接口的实例,在绑定接口的方法中初始化。

    private OnButtonListener onButtonListener;

    publicvoidsetOnButtonListener(OnButtonListener onButtonListener){

    this.onButtonListener = onButtonListener;

    }

    5.有了具体的接口变量,就可以直接调用这个接口变量中的方法,来将要实现的方法回调到实现接口的地方来实现。

    btn.setOnClickListener(newView.OnClickListener() {

    @Override

    publicvoidonClick(View view) {

    onButtonListener.CallBack(position);

    }

    });

    上面就是根据例子中的描述,使用java回调来实现的将item View的btn的点击事件回传到ui中来实现。

    具体场景可以延伸到其他地方,总之,使用Java回调的地方还是比较多的。

    相关文章

      网友评论

          本文标题:Java中回调接口的简单使用

          本文链接:https://www.haomeiwen.com/subject/cuzdsttx.html