From d9c886270d66782df9de5f6a7b877a269a273aa5 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期二, 12 十二月 2023 09:25:52 +0800
Subject: [PATCH] 卡标识设置添加选择器

---
 app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java |   57 ++++++++-
 app/src/main/res/layout/activity_power.xml                            |    1 
 app/src/main/java/com/dayu/recharge/activity/SysIpActivity.java       |   16 ++
 app/src/main/res/mipmap-xhdpi/icon_bottom.png                         |    0 
 app/src/main/java/com/dayu/recharge/view/ChooseView.java              |  119 +++++++++++++++++++
 app/src/main/res/drawable/ic_choose_gray_edge.xml                     |    8 +
 app/src/main/res/layout/activity_identyfying.xml                      |   39 ++++++
 app/src/main/res/layout/pickerview_choose.xml                         |   65 ++++++++++
 app/build.gradle                                                      |    3 
 9 files changed, 294 insertions(+), 14 deletions(-)

diff --git a/app/build.gradle b/app/build.gradle
index 4918915..1b6a414 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -56,6 +56,7 @@
     implementation 'com.google.zxing:core:3.4.1'
     implementation group: 'net.sourceforge.jexcelapi', name: 'jxl', version: '2.6.12'
     implementation 'com.wang.avi:library:2.1.3'
+    //鍦板潃閫夋嫨
     implementation project(':pickerviewlibrary')
     implementation project(':easysocket')
     implementation 'com.tencent.bugly:crashreport:latest.release'
@@ -67,4 +68,6 @@
         exclude group: 'androidx.appcompat';
         exclude group: 'androidx.annotation';
     }
+    //婊氬姩閫夋嫨妗�
+    implementation 'com.contrarywind:Android-PickerView:4.1.9'
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java b/app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java
index 58821bd..9786eb7 100644
--- a/app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java
@@ -8,6 +8,9 @@
 import com.dayu.recharge.databinding.ActivityIdentyfyingBinding;
 import com.dayu.recharge.dbBean.IdentityBean;
 import com.dayu.recharge.utils.TipUtil;
+import com.dayu.recharge.view.ChooseView;
+
+import java.util.Arrays;
 
 /**
  * Created by Android Studio.
@@ -21,28 +24,44 @@
     ActivityIdentyfyingBinding binding;
     IdentityBean myIdentityBean;
 
+    String[] nianfen = {"绠$悊鍗�", "娓呴浂鍗�", "閲嶆柊娉ㄥ唽璁惧鍗�", "鍒犻櫎鍏ㄩ儴鐢ㄦ埛鍗�", "璁剧疆鍩熷悕鍗�", "娴嬭瘯鍗�", "璁惧淇℃伅鍗�", "姘存车鍔熺巼鍗�"};
+
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        binding=ActivityIdentyfyingBinding.inflate(LayoutInflater.from(this));
+        binding = ActivityIdentyfyingBinding.inflate(LayoutInflater.from(this));
         setContentView(binding.getRoot());
-        IdentityBean identityBean=baseDao.identityDao().findFirst();
-        if (identityBean!=null){
-            myIdentityBean= identityBean;
+        binding.chooseCardType.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                ChooseView.getIntence(IdentifyingActivity.this, Arrays.asList(nianfen.clone()), new ChooseView.ChooseCallBack() {
+                    @Override
+                    public void onOptionsSelect(int options1) {
+
+                    }
+                }).show();
+            }
+        });
+
+
+        IdentityBean identityBean = baseDao.identityDao().findFirst();
+        if (identityBean != null) {
+            myIdentityBean = identityBean;
             binding.electricOldNumber.setText(myIdentityBean.getIdentity());
-        }else {
-            myIdentityBean=new IdentityBean();
+        } else {
+            myIdentityBean = new IdentityBean();
             binding.electricOldNumber.setText("3668F7A30119");
         }
         binding.electricOk.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 String data = binding.electricOldNumber.getText().toString();
-                if (!TextUtils.isEmpty(data)){
+                if (!TextUtils.isEmpty(data)) {
                     myIdentityBean.setIdentity(binding.electricOldNumber.getText().toString());
                     baseDao.identityDao().insert(myIdentityBean);
                     TipUtil.show("淇濆瓨鎴愬姛");
-                }else {
+                } else {
                     TipUtil.show("璇疯緭鍏ュ崱鏍囪瘑");
                 }
 
@@ -50,4 +69,26 @@
         });
     }
 
+
+    private void chooseData(String data) {
+        switch (data) {
+            case "绠$悊鍗�":
+                break;
+            case "娓呴浂鍗�":
+                break;
+            case "閲嶆柊娉ㄥ唽璁惧鍗�":
+                break;
+            case "鍒犻櫎鍏ㄩ儴鐢ㄦ埛鍗�":
+                break;
+            case "璁剧疆鍩熷悕鍗�":
+                break;
+            case "娴嬭瘯鍗�":
+                break;
+            case "璁惧淇℃伅鍗�":
+                break;
+            case "姘存车鍔熺巼鍗�":
+                break;
+        }
+    }
+
 }
diff --git a/app/src/main/java/com/dayu/recharge/activity/SysIpActivity.java b/app/src/main/java/com/dayu/recharge/activity/SysIpActivity.java
index 9d3dd15..31dc483 100644
--- a/app/src/main/java/com/dayu/recharge/activity/SysIpActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/SysIpActivity.java
@@ -1,6 +1,7 @@
 package com.dayu.recharge.activity;
 
 import android.os.Bundle;
+import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.Toast;
@@ -10,6 +11,8 @@
 import com.dayu.recharge.dbBean.AdminDataBean;
 import com.dayu.recharge.dbBean.IpBean;
 import com.dayu.recharge.utils.DeviceNumberUtils;
+import com.dayu.recharge.utils.TipUtil;
+import com.dayu.recharge.utils.ToastUtil;
 import com.dayu.recharge.utils.WSHelper;
 
 /**
@@ -48,10 +51,19 @@
         ipBinding.ipOk.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
+                if (TextUtils.isEmpty(ipBinding.port.getText().toString())) {
+                    ToastUtil.show("璇疯緭鍏ョ鍙e彿");
+                    return;
+                }
+                int newPort = Integer.parseInt(ipBinding.port.getText().toString());
+                if (newPort <= 0 || newPort > 65535) {
+                    TipUtil.show("璇疯緭鍏ユ纭殑绔彛鍙�");
+                    return;
+                }
                 if (ipBean != null) {
                     String oldIp = ipBean.getIp();
                     int oldPort = ipBean.getPort();
-                    if (!oldIp.equals(ipBinding.ip.getText().toString())|| oldPort != Integer.valueOf(ipBinding.port.getText().toString())) {
+                    if (!oldIp.equals(ipBinding.ip.getText().toString()) || oldPort != newPort) {
 //                        DeviceNumberUtils.setDeviceNumber("");
                     }
                 }
@@ -59,7 +71,7 @@
                     ipBean = new IpBean();
                 }
                 ipBean.setIp(ipBinding.ip.getText().toString());
-                ipBean.setPort(Integer.parseInt(ipBinding.port.getText().toString()));
+                ipBean.setPort(newPort);
                 baseDao.ipDao().insert(ipBean);
                 AdminDataBean adminData = baseDao.adminDao().findFirst();
                 //淇敼IP鍚庨噸鏂拌繛鎺�
diff --git a/app/src/main/java/com/dayu/recharge/view/ChooseView.java b/app/src/main/java/com/dayu/recharge/view/ChooseView.java
new file mode 100644
index 0000000..a53547b
--- /dev/null
+++ b/app/src/main/java/com/dayu/recharge/view/ChooseView.java
@@ -0,0 +1,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;
+    }
+
+    /**
+     * 闅愯棌杞敭鐩�(鍙�傜敤浜嶢ctivity锛屼笉閫傜敤浜嶧ragment)
+     */
+    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 鐨勫竷灞�浠ュ強鍏跺瓙鎺т欢蹇呴』瑕佹湁锛屽惁鍒欎細鎶ョ┖鎸囬拡銆�
+         * 鍏蜂綋鍙弬鑰僤emo 閲岄潰鐨勪袱涓嚜瀹氫箟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);
+    }
+
+
+}
diff --git a/app/src/main/res/drawable/ic_choose_gray_edge.xml b/app/src/main/res/drawable/ic_choose_gray_edge.xml
new file mode 100644
index 0000000..71acd81
--- /dev/null
+++ b/app/src/main/res/drawable/ic_choose_gray_edge.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#ffffff" />
+    <corners android:radius="5dp" />
+    <stroke
+        android:width="1dp"
+        android:color="#ededed" />
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_identyfying.xml b/app/src/main/res/layout/activity_identyfying.xml
index 3828a17..cb2323b 100644
--- a/app/src/main/res/layout/activity_identyfying.xml
+++ b/app/src/main/res/layout/activity_identyfying.xml
@@ -13,17 +13,50 @@
         app:centerText="姘磋〃鑴夊啿璁剧疆"
         app:leftImage="@mipmap/icon_back" />
 
+
+    <RelativeLayout
+        android:id="@+id/chooseCardType"
+        android:layout_width="match_parent"
+        android:layout_height="45dp"
+        android:layout_below="@id/titleBar"
+        android:layout_marginLeft="20dp"
+        android:layout_marginTop="20dp"
+        android:layout_marginRight="20dp"
+        android:background="@drawable/ic_choose_gray_edge">
+
+        <TextView
+            android:id="@+id/chooseCardTypeText"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="10dp"
+            android:hint="璇烽�夋嫨鍗$被鍨�"
+            android:text="@{data.getBuildYearStr}"
+            android:textColor="#000000"
+            android:textSize="18sp" />
+
+        <ImageView
+            android:layout_width="15dp"
+            android:layout_height="15dp"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:layout_marginRight="8dp"
+            android:src="@mipmap/icon_bottom" />
+    </RelativeLayout>
+
     <LinearLayout
         android:id="@+id/electric_ll"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_below="@id/titleBar"
+        android:layout_below="@id/chooseCardType"
         android:layout_margin="20dp"
+
         android:orientation="horizontal">
 
         <TextView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
+            android:textColor="#000000"
             android:text="褰撳墠鍗℃爣璇嗭細"
             android:textSize="@dimen/text_size" />
 
@@ -43,8 +76,8 @@
         android:layout_below="@+id/electric_ll"
         android:layout_alignParentStart="true"
         android:layout_margin="20dp"
-        android:inputType="number"
-        android:hint="璇疯緭鍏ユ柊鐨勫崱鏍囪瘑" />
+        android:hint="璇疯緭鍏ユ柊鐨勫崱鏍囪瘑"
+        android:inputType="number" />
 
     <TextView
         android:id="@+id/electric_ok"
diff --git a/app/src/main/res/layout/activity_power.xml b/app/src/main/res/layout/activity_power.xml
index d24084c..5f9f21b 100644
--- a/app/src/main/res/layout/activity_power.xml
+++ b/app/src/main/res/layout/activity_power.xml
@@ -44,7 +44,6 @@
         android:layout_alignParentStart="true"
         android:layout_marginStart="20dp"
         android:layout_marginTop="20dp"
-        android:maxLength="8"
         android:layout_marginEnd="20dp"
         android:layout_marginBottom="20dp"
         android:hint="璇疯緭鍏ユ柊璁剧疆鐨勬按娉靛姛鐜�"
diff --git a/app/src/main/res/layout/pickerview_choose.xml b/app/src/main/res/layout/pickerview_choose.xml
new file mode 100644
index 0000000..05d4fa4
--- /dev/null
+++ b/app/src/main/res/layout/pickerview_choose.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:background="@color/white"
+        android:layout_height="45dp">
+
+        <TextView
+            android:id="@+id/bt_cancel"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:layout_marginLeft="20dp"
+            android:gravity="center"
+            android:text="鍙�  娑�"
+            android:textColor="@color/choose_grey"
+            android:textSize="@dimen/choose_pop_text" />
+
+        <TextView
+            android:id="@+id/bt_add"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:layout_alignParentRight="true"
+            android:layout_marginRight="20dp"
+            android:gravity="center"
+            android:text="纭�  瀹�"
+            android:textColor="@color/title_color"
+            android:textSize="@dimen/choose_pop_text" />
+
+
+    </RelativeLayout>
+
+    <!--姝ら儴鍒嗛渶瑕佸畬鏁村鍒惰繃鍘伙紝鍒犲噺鎴栬�呮洿鏀笽D浼氬鑷村垵濮嬪寲鎵句笉鍒板唴瀹硅�屾姤绌�-->
+    <LinearLayout
+        android:id="@+id/optionspicker"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:minHeight="150dp"
+        android:gravity="center"
+        android:background="@android:color/white"
+        android:orientation="horizontal">
+
+        <com.contrarywind.view.WheelView
+            android:id="@+id/options1"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1" />
+
+        <com.contrarywind.view.WheelView
+            android:id="@+id/options2"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1" />
+
+        <com.contrarywind.view.WheelView
+            android:id="@+id/options3"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1" />
+    </LinearLayout>
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-xhdpi/icon_bottom.png b/app/src/main/res/mipmap-xhdpi/icon_bottom.png
new file mode 100644
index 0000000..c71682a
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/icon_bottom.png
Binary files differ

--
Gitblit v1.8.0