简体   繁体   English

将焦点更改为 EditText Android

[英]Change Focus to EditText Android

I have 2 EditText's on my Activity and set the maxLength to 5.我的 Activity 上有 2 个 EditText,并将maxLength设置为 5。

Now I want to set the focus to editText2 , if the length of 5 is reached in editView1 ...现在我想将焦点设置为editText2 ,如果在editView1中达到 5 的长度 ...

I tried it with:我试过了:

editView1.setOnKeyListener(new OnKeyListener() {
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if(editView1.getText().length() == 5)
            editView2.requestFocus();
        return false;
    }
});

But it won't work..但它不会工作..

This works这有效

final EditText editText1 = (EditText) findViewById(R.id.editText1);
final EditText editText2 = (EditText) findViewById(R.id.editText2);

editText1.setOnKeyListener(new OnKeyListener() {

    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if(editText1.getText().length() == 5)
            editText2.requestFocus();
        return false;
    }
});

Marc Juschkeits post almost was perfect for me. Marc Juschkeits 的帖子对我来说几乎是完美的。

But in my case i had to test if the keyevent is an action up because i have a standard text in the edittext that has the same length.但在我的情况下,我必须测试 keyevent 是否是一个动作,因为我在 edittext 中有一个长度相同的标准文本。

final EditText editText1 = (EditText) findViewById(R.id.editText1);
final EditText editText2 = (EditText) findViewById(R.id.editText2);

editText1.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View view, int i, KeyEvent keyEvent) {
            if (keyEvent.getAction() == KeyEvent.ACTION_UP) {
                if (editText1.getText().length() == 5) {
                    editText2.requestFocus();
                }
            }
            return false;
        }
    });

Request focus not working on main thread i think.我认为请求焦点不适用于主线程。 But i'm not sure.但我不确定。 This is worked for me,这对我有用,

_edittext.post(new Runnable() {
      public void run() 
        {
           _edittext.requestFocus();
        }

});

EdName.setOnKeyListener(new OnKeyListener() { EdName.setOnKeyListener(new OnKeyListener() {

        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            System.out.println("Yes Bud");

            if(EdName.length()== 5)
            {
                    EdBin.requestFocus();

            }
                return false;


        }
    });

In the androidmanifest.xml file add the following code in activity tag:在 androidmanifest.xml 文件中,在活动标签中添加以下代码:

android:windowSoftInputMode="stateHidden"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在焦点更改时显示软键盘EditText Android - Showing softkeyboard on change in focus edittext android 在 Android 中更改 Edittext 焦点后隐藏键盘 - Hide keyboard after change focus of Edittext in Android Android EditText焦点更改键盘隐藏视图 - Android edittext focus change keyboard hides view 更改edittext的焦点在EnterPressed_android - Change focus of edittext on Enter pressed_android 如何在Android中更改EditText的焦点颜色 - How to change focus color of EditText in Android Android EditText Style.xml更改FOCUS EditText - Android EditText Style.xml change FOCUS EditText 带有左图标的 Android 自定义 EditText 可更改焦点上的颜色并在编辑文本不为空时将图标颜色保持在焦点上? - Android Custom EditText with a Left Icon that change the color on Focus and keep the icon color on focus when the edittext is not empty? EditText 焦点在 android studio 中不起作用,我想在 edittext 焦点改变时隐藏一个 textview,怎么办? - EditText focus is not working in android studio, i want to hide a textview when focus change in edittext, how to do this? android中Edittext的焦点没有改变 - Edittext focus is not changing in android Android EditText下一个焦点 - Android EditText next focus
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM