左晓为主开发手持机充值管理机
zuoxiao
2023-12-12 d9c886270d66782df9de5f6a7b877a269a273aa5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
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);
    }
 
 
}