| New file | 
 |  |  | 
 |  |  | package com.dayu.qihealonelibrary.activity; | 
 |  |  |  | 
 |  |  | import android.os.Bundle; | 
 |  |  | import android.text.Editable; | 
 |  |  | import android.text.InputFilter; | 
 |  |  | import android.text.Spanned; | 
 |  |  | 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.qihealonelibrary.databinding.ActivityPasswordCardQhaBinding; | 
 |  |  | import com.dayu.qihealonelibrary.dbBean.PassWordCardBean; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  |  * author: zuo | 
 |  |  |  * Date: 2024-03-01 | 
 |  |  |  * Time: 16:21 | 
 |  |  |  * 备注:密码卡设置界面 | 
 |  |  |  */ | 
 |  |  | public class PasswordCardActivity extends BaseActivity { | 
 |  |  |  | 
 |  |  |     ActivityPasswordCardQhaBinding binding; | 
 |  |  |  | 
 |  |  |     PassWordCardBean cardBean; | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     protected void onCreate(Bundle savedInstanceState) { | 
 |  |  |         super.onCreate(savedInstanceState); | 
 |  |  |         binding = ActivityPasswordCardQhaBinding.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(PasswordCardActivity.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 的字符 | 
 |  |  |     } | 
 |  |  | } |