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使用提示