Java中添加kotlin回调函数

 Java中调动kotlin方法,然后传一个kotlin的callback,onItemSelected: ((Int) -> Unit)


class WheelOptionPicker() {
    fun showReasonPicker(context: Context,
                         reasons: List<String>,
                         onItemSelected: ((Int) -> Unit)) {
        AppUtils.hideKeyBoard(context as Activity)
        var index = 0
        var pvOptions: OptionsPickerView<String>? = null

        pvOptions = OptionsPickerBuilder(context, null)
                .setLayoutRes(R.layout.option_picker_view) { v ->
                    v.text_left.fillVisible(false)
                    v.text_title.text = context.getString(R.string.please_choice_dispose_reason)
                    val picker = v.optionspicker
                    picker.setPadding(DisplayUtil.dp2px(32f), DisplayUtil.dp2px(16f),
                            DisplayUtil.dp2px(32f), DisplayUtil.dp2px(16f))
                    val opt1: WheelView = v.options1 // 初始化时显示的数据
                    v.text_right.text = context.getString(R.string.str_save)
                    v.text_right.setOnClickListener {
                        val currentItems = IntArray(3)
                        currentItems[0] = opt1.currentItem
                        pvOptions?.dismiss()
                        onItemSelected(currentItems[0])
                    }
                }
                .setTextColorCenter(ContextCompat.getColor(context, R.color.delivery_primary_text_color))
                .setItemVisibleCount(7)
                .setContentTextSize(23)
                .isAlphaGradient(true)
                .setLineSpacingMultiplier(1.5f)
                .setOutSideCancelable(true)
                .setSelectOptions(index)
                .build<String>()

        pvOptions?.setPicker(reasons)
        pvOptions?.setSelectOptions(index)
        pvOptions?.show()
    }
}
private void showPop() {
        new WheelOptionPicker().showReasonPicker(this, mDisposeMessageList
               //写法一:写了new 之后,使用alt+回车就可以自动补全Function1函数
               //另:commend+P只能提示参数,不能自动补全
               /* , new Function1<Integer, Unit>() {
            @Override
            public Unit invoke(Integer integer) {
                    if (mBizTaskInfo != null && mBizTaskInfo.getBizTaskNo() != null) {
                        presenter.patchDisposeBusinessTaskMessage(mRxManager, mFdApiService,
                                mDisposeMessageList.get(integer),
                                mBizTaskInfo == null ? null : mBizTaskInfo.getBizTaskNo(), this);
                    } else {
                        ToastUtil.toast("提交信息有误");
                    }
                    return null;
            }
        }*/

                //写法二:让系统自己简写,就成了这样
                ,integer -> {
                    if (mBizTaskInfo != null && mBizTaskInfo.getBizTaskNo() != null) {
                        presenter.patchDisposeBusinessTaskMessage(mRxManager, mFdApiService,
                                mDisposeMessageList.get(integer),
                                mBizTaskInfo == null ? null : mBizTaskInfo.getBizTaskNo(), this);
                    } else {
                        ToastUtil.toast("提交信息有误");
                    }
                    return null;
                }
        );

 可以在Java中输入参数后,使用commnd+p使用提示

 

 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值