package com.dayu.rechargeqh.view; import android.app.Activity; import android.content.Context; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.TextView; import androidx.annotation.NonNull; import com.bigkoo.pickerview.builder.OptionsPickerBuilder; import com.bigkoo.pickerview.listener.CustomListener; import com.bigkoo.pickerview.listener.OnOptionsSelectListener; import com.bigkoo.pickerview.view.OptionsPickerView; import com.dayu.rechargeqh.R; import java.util.List; /** * Copyright (C), 2023, * Author: zuo * Date: 2023-04-09 17:37 * Description: 滚动选择框 */ public class ChooseView { private OptionsPickerView pvCustomOptions; Context mycontext; List mycardItem; static ChooseView chooseView; ChooseCallBack chooseCallBack; public static ChooseView getIntence(@NonNull Activity context, List cardItem, ChooseCallBack chooseCallBack) { hideSoftKeyboard(context); if (chooseView == null) { chooseView = new ChooseView(); } chooseView.mycontext = context; chooseView.chooseCallBack = chooseCallBack; chooseView.mycardItem = cardItem; chooseView.initView(); return chooseView; } /** * 隐藏软键盘(只适用于Activity,不适用于Fragment) */ public static void hideSoftKeyboard(Activity activity) { try { View view = activity.getCurrentFocus(); if (view != null) { InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE); inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } } catch (Exception e) { e.printStackTrace(); } } void initView() { /** * @description * * 注意事项: * 自定义布局中,id为 optionspicker 或者 timepicker 的布局以及其子控件必须要有,否则会报空指针。 * 具体可参考demo 里面的两个自定义layout布局。 */ pvCustomOptions = new OptionsPickerBuilder(mycontext, new OnOptionsSelectListener() { @Override public void onOptionsSelect(int options1, int option2, int options3, View v) { //返回的分别是三个级别的选中位置 // String tx = cardItem.get(options1).getPickerViewText(); // btn_CustomOptions.setText(tx); chooseCallBack.onOptionsSelect(options1); } }) .setLayoutRes(R.layout.pickerview_choose, new CustomListener() { @Override public void customLayout(View v) { final TextView tvSubmit = (TextView) v.findViewById(R.id.bt_add); final TextView tvCancel = (TextView) v.findViewById(R.id.bt_cancel); tvSubmit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pvCustomOptions.returnData(); pvCustomOptions.dismiss(); } }); tvCancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pvCustomOptions.dismiss(); } }); } }) .isDialog(false) .setOutSideCancelable(false) .build(); pvCustomOptions.setPicker(mycardItem);//添加数据 } public void show() { pvCustomOptions.show(); } public interface ChooseCallBack { void onOptionsSelect(int options1); } }