| package com.dayu.qiheonlinelibrary.activity; | 
|   | 
| import android.os.Bundle; | 
| import android.text.Editable; | 
| import android.text.TextUtils; | 
| import android.text.TextWatcher; | 
| import android.view.LayoutInflater; | 
| import android.view.View; | 
|   | 
| import com.dayu.baselibrary.utils.TipUtil; | 
| import com.dayu.qiheonlinelibrary.databinding.ActivityPasswordCardQhlBinding; | 
| import com.dayu.qiheonlinelibrary.dbBean.PassWordCardBean; | 
|   | 
|   | 
| /** | 
|  * author: zuo | 
|  * Date: 2024-03-01 | 
|  * Time: 16:21 | 
|  * 备注:密码卡设置界面 | 
|  */ | 
| public class PasswordCardActivityQHOline extends QHOlineBaseActivity { | 
|   | 
|     ActivityPasswordCardQhlBinding binding; | 
|   | 
|     PassWordCardBean cardBean; | 
|   | 
|     @Override | 
|     protected void onCreate(Bundle savedInstanceState) { | 
|         super.onCreate(savedInstanceState); | 
|         binding = ActivityPasswordCardQhlBinding.inflate(LayoutInflater.from(this)); | 
|         setContentView(binding.getRoot()); | 
|         initView(); | 
|         initData(); | 
|     } | 
|   | 
|   | 
|     private void initData() { | 
|         PassWordCardBean powerBean = baseDao.passWordCardDao().findFirst(); | 
|         if (powerBean != null) { | 
|             this.cardBean = powerBean; | 
|             binding.villageOldNumber.setText(powerBean.getPassWord()); | 
|         } else { | 
|             cardBean = new PassWordCardBean(); | 
|             binding.villageOldNumber.setText("当前还未设置"); | 
|         } | 
|     } | 
|   | 
|     private void initView() { | 
|         binding.villageOk.setOnClickListener(new View.OnClickListener() { | 
|             @Override | 
|             public void onClick(View v) { | 
|                 String data = binding.villageNewNum.getText().toString(); | 
|                 if (!TextUtils.isEmpty(data)) { | 
|                     if (data.length() == 12) { | 
|                         cardBean.setPassWord(data); | 
|                         baseDao.passWordCardDao().insert(cardBean); | 
|                         TipUtil.show(PasswordCardActivityQHOline.this, "保存成功"); | 
|                         initData(); | 
|                     } else { | 
|                         TipUtil.show("请输入正确的12位字符的16进制卡密码"); | 
|                     } | 
|   | 
|                 } else { | 
|                     TipUtil.show("请输入要设置的卡密码"); | 
|                 } | 
|             } | 
|         }); | 
|         // 设置输入过滤器 | 
|         binding.villageNewNum.addTextChangedListener(new TextWatcher() { | 
|             @Override | 
|             public void beforeTextChanged(CharSequence s, int start, int count, int after) { | 
|   | 
|             } | 
|   | 
|             @Override | 
|             public void onTextChanged(CharSequence s, int start, int before, int count) { | 
|             } | 
|   | 
|             @Override | 
|             public void afterTextChanged(Editable s) { | 
|                 if (!isValidInput(s.toString())) { | 
|                     // 如果输入的字符不符合要求,则将 EditText 的内容设置为最后一次合法的输入 | 
|                     binding.villageNewNum.setText(s.subSequence(0, s.length() - 1).toString().toUpperCase()); | 
|                     binding.villageNewNum.setSelection(binding.villageNewNum.getText().length()); // 将光标移动到末尾 | 
|                 } | 
|             } | 
|         }); | 
|     } | 
|   | 
|     // 检查输入的字符是否符合要求 | 
|     private boolean isValidInput(String input) { | 
|         return input.matches("[0-9a-fA-F]*"); // 包含 0-9 和 a-f 的字符 | 
|     } | 
| } |