Android自定义密码输入框

Android自定义密码输入框

2023年7月13日发(作者:)

Android⾃定义密码输⼊框⼀、前⾔:我们在软件开发过程中,经常会遇到密码输⼊框,这就要我们⾃定控件来实现,下⾯的⾃定义密码框,是参考我的同事写出来的,今天分享⼀下。1. gitHub 地址:/lyyRunning/PasswordBoxDemo2. 效果图如下:图 图 图 图 ⼆、使⽤ :我只介绍第⼆种,第⼀种是弹窗,回调有点多,⼤家可以下载源码看⼀下啊。强⼤⼯具类依赖:(⾃定义布局⽤不到,⽤到了弹窗和键盘的显⽰隐藏)implementation ':utilcode:1.25.2'ivity调⽤:public class TwoActivity extends Activity { @BindView(tionCode) ActivationCodeBox activationCode; @BindView(_cancel) Button btnCancel; @BindView(ner) LinearLayout container; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { te(savedInstanceState); setContentView(ty_two); (this); initData(); } private void initData() { //激活码输⼊完成 utCompleteListener(new ompleteListener() { @Override public void inputComplete(String code) { ftInput(); //回调进⼊ Activity if (("1234")) { //激活成功 ort("激活成功"); p(false, ""); } else { //激活失败 ort("激活失败"); p(true, "激活失败"); } } }); //返回上⼀页 lickListener(new kListener() { @Override public void onClick(View v) { (); } }); } /** * 页⾯跳转 * * @param mContext */ public static void launch(Context mContext) { Intent intent = new Intent(mContext, ); ctivity(intent); }2.⾃定义ActivationCodeBox布局:public class ActivationCodeBox extends RelativeLayout { private Context context; private TextView[] textViews; private static int MAXlength = 4; private static int MAXlength = 4; private TextView tvTip; private String inputContent; private EditText etCode; private List codes = new ArrayList<>(); private InputMethodManager imm; private Animation shake; public ActivationCodeBox(Context context) { super(context); t = context; loadView(); } public ActivationCodeBox(Context context, AttributeSet attrs) { super(context, attrs); t = context; loadView(); } public ActivationCodeBox(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); t = context; loadView(); } @RequiresApi(api = N_OP) public ActivationCodeBox(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); t = context; loadView(); } private void loadView(){ //抖动效果 shake = imation(context, ); imm = (InputMethodManager) temService(_METHOD_SERVICE); View view = (context).inflate(tion_code_box, this); initView(view); initEvent(); } private void initView(View view){ textViews = new TextView[MAXlength]; textViews[0] = (TextView) ewById(_code1); textViews[1] = (TextView) ewById(_code2); textViews[2] = (TextView) ewById(_code3); textViews[3] = (TextView) ewById(_code4); etCode = (EditText) ewById(_code); tvTip = (TextView) ewById(_tip); } private void initEvent(){ //验证码输⼊ tChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void afterTextChanged(Editable editable) { inputContent = t().toString(); if (inputCompleteListener != null) { if (() >= MAXlength) { omplete(inputContent); } } for (int i = 0; i < MAXlength; i++) { if (i < ()) { textViews[i].setText(f((i))); } else { textViews[i].setText(""); } } } } }); } /** * 设置⾼亮颜⾊ */ private void setColor(boolean isShow, int color){ for (int i = 0; i ty_two布局:

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信