package com.dayu.recharge.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.recharge.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<String> mycardItem;
|
static ChooseView chooseView;
|
ChooseCallBack chooseCallBack;
|
|
|
public static ChooseView getIntence(@NonNull Activity context, List<String> 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);
|
}
|
|
|
}
|