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