Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android如何在单击退格时关注另一个edittext大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_404_4@
我正在尝试让Pin进入页面,我创建了4个EditTexts,并在我的活动中创建了一个函数.我的问题是,当我单击退格按钮时,我想将当前EditText聚焦到Before(BACk)EditText,但是Key listener不起作用.

逻辑很简单,当用户输入编辑文本的数字时,它会失去焦点,然后编辑文本会变得焦点,然后它会变成这样.但问题是当我点击后退空间我想在edittext之前返回再次输入数字.我试图在beforeTextChange中插入keyListener,但它没有工作.

private void SetTextChange(final EditText etCurrent,final EditText etForWARD,final EditText etBACk,final Boolean isLast,final int currentPosition)
{

    etCurrent.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s,int start,int count,int after) {
        }

        @Override
        public void ontextChanged(CharSequence s,int before,int count) {

            if (etCurrent.getText().length() == 1 && !isLast ) {
                etCurrent.setTypeface(null,Typeface.NORMAL);
                etCurrent.clearFocus();
                etForWARD.requestFocus();
                etForWARD.setcursorVisible(true);

                etCurrent.getBACkground().setColorFilter(getresources().getColor(R.color.lavender_indigo),PorterDuff.Mode.SRC_ATOp);
            } else if (etCurrent.length() == 0) {
                etCurrent.getBACkground().setColorFilter(getresources().getColor(R.color.french_gray),PorterDuff.Mode.SRC_ATOp);
                etCurrent.setTypeface(null,Typeface.SANS_SERIF.getStyle());

                etCurrent.setTypeface(null,Typeface.NORMAL);
                etCurrent.clearFocus();
                etBACk.requestFocus();
                etBACk.setcursorVisible(true);

            }


            if (etCurrent.length() != 0) {
                Integer currentKey = Integer.parseInt(etCurrent.getText().toString());
                keyList.set(currentPosition,currentKey);
            } else
                keyList.set(currentPosition,-1);

            if (keyList.size() > 3)
                showToast(keyList.get(0) + " " + keyList.get(1) + " " + keyList.get(2) + " " + keyList.get(3));

        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });

    /*curText.setOnFocuschangelistener(new View.onFocuschangelistener() {
        public void onFocusChange(View arg0,Boolean arg1) {
            curText = etCurrent;
            BACkText = etBACk;
            curText.setText("");
        }

        });*/
    }

这也是我的EditText示例xml之一.(其他都是一样的)

<EditText
        android:layout_column="1"
        android:layout_columnWeight="1"
        android:id="@+id/etActivationDigit1"
        android:layout_width="70dp"
        android:layout_height="wrap_content"
        android:textSize="80dp"
        android:textAlignment="center"
        android:gravity="center_horizontal"
        android:hint="*"
        android:textColorHint="@color/french_gray"
        android:BACkgroundTint="@color/french_gray"
        android:fontFamily="sans-serif"
        android:textColor="@color/perfume"
        android:maxLength="1"
        android:inputType="number"
         />

用户输入错误的号码时,我只想擦除并重新聚焦.注意:当你填写所有字段时,你会看到你可以删除并返回,但我想回到密码的中间位置.谢谢.

etCurrent.setOnKeyListener(new View.onKeyListener() {
        @Override
        public Boolean onKey(View v,int keyCode,KeyEvent event) {

            if(etCurrent.getText().toString() == "" && keyCode == event.KEYCODE_DEL)
            {
                etCurrent.setText("");
                etCurrent.clearFocus();
                etBACk.requestFocus();
                etBACk.setText("");
            }
            return false;
        }
    });

当我触摸退格键时,我的BACkspace侦听器不会触发,但会触发所有其他字符.

@H_404_4@

解决方法

这适用于我的4位密码活动.

private void setupInputListeners() {
    verificationCode1EditText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s,int count) {
            if (s.length() == 1) {
                verificationCode2EditText.requestFocus(View.FOCUS_DOWN);
            }
        }

        @Override
        public void afterTextChanged(Editable s) {
        }
    });

    verificationCode2EditText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s,int count) {
            if(count == 0) {
                verificationCode1EditText.requestFocus(View.FOCUS_DOWN);
            } else {
                if (s.length() == 1) {
                    verificationCode3EditText.requestFocus(View.FOCUS_DOWN);
                }
            }
        }

        @Override
        public void afterTextChanged(Editable s) {
        }
    });

    verificationCode3EditText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s,int count) {
            if(count == 0) {
                verificationCode2EditText.requestFocus(View.FOCUS_DOWN);
            } else {
                if (s.length() == 1) {
                    verificationCode4EditText.requestFocus(View.FOCUS_DOWN);
                }
            }
        }

        @Override
        public void afterTextChanged(Editable s) {
        }
    });

    verificationCode4EditText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s,int count) {
            if(count == 0) {
                verificationCode3EditText.requestFocus(View.FOCUS_DOWN);
            }
        }

        @Override
        public void afterTextChanged(Editable s) {
        }
    });
}
@H_404_4@ @H_404_4@
@H_404_4@
@H_404_4@
本图文内容来源于网友网络收集整理提供,作为学习参使用,版权属于原作者。

猜你在找的Android相关文章

问题描述:预览图像被拉伸变形问题原因:由于预览图像大小跟SurfaceView 大小不一致引起 解决方法:获取系统支持的所有预览尺寸[getSupportedPictureSizes],然后再取一个比
可以忽略onWindowFocusChanged、onSaveInstanceState、onRestoreInstanceState几个事件,这几个事件官网中的生命周期里面没有提到、忽略掉这几个方法
ListView 的高度 必须要设置成一个明确的值 或者match_parent 不然就会调用多次getView方法
一. 在Android的源文件中的乱码问题Android studio安装后发现所有的中文,不管是界面上的还是输出的log中的中文都变成小框框,具体的解决方法如下,可以肯定是字体的问题解决:菜单Fil
第一部分 个性化控件(View)主要介绍那些不错个性化的 View,包括 ListView、ActionBar、Menu、ViewPager、Gallery、GridView、ImageView、ProgressBar、TextView、ScrollView、TimeView、TipView、FlipView、ColorPickView、GraphView、UI Style 等等。一、Li...
View与Widget带小红点的提示:BadgeViewBadgeView(stefanjauker的,改颜色需要在BadgeView源码里面改) android-viewbadger(可以设置提示为数字或者文字,以及背景颜色)标签tagviewTAGView(可以设置背景图片的形状和颜色,可以同时显示图片和文字) android-tagview(Android-Cloud-Ta...
内容抽屉菜单 ListView WebView SwitchButton 按钮 点赞按钮 进度条 TabLayout 图标 下拉刷新 ViewPager 图表(Chart) 菜单(Menu) 浮动菜单 对话框 空白页 滑动删除 手势操作 RecyclerView Card Color Drawable Spinner 布局 模糊效果 TabBar AppBar 选择器(Picker) 跑马灯 日历时间 主题样式 ImageView 通知
Android Context作用Context 用于访问全局信息的接口App的资源: Strings, drawable资源等等下面咱们来看一个例子public class MainActivity extends Activity { String TAG = "CARLOZ"; @Override protected void onCreate(Bundle savedIn

Android如何在单击退格时关注另一个edittext

微信公众号搜 "程序精选"关注

大佬总结

以上是大佬教程为你收集整理的Android如何在单击退格时关注另一个edittext全部内容,希望文章能够帮你解决Android如何在单击退格时关注另一个edittext所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。