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 PasswordCardActivity extends BaseActivity { 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(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 的字符 } }