setOnEditorActionListener不适用于布局的每个其他末端旁边的编辑文本

时间:2018-05-01 05:46:53

标签: android

这里是代码 在我的布局中,我有两个连续编辑文本,当我在键盘上触摸它时,它不会改变焦点。 在添加额外的editText

之前,setOnEditorActionListener不起作用
               <EditText
                    android:id="@+id/firstText"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:imeOptions="actionNext"
                    android:inputType="numberDecimal"
                    />

                <EditText
                    android:id="@+id/secondText"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:imeOptions="actionDone"
                    android:inputType="numberDecimal"
                     />

代码:

  firstText.setOnNextActionListener(new CallBack<KeyEvent>() {
            @Override
            public void call(KeyEvent data) {
                secondText.requestEditTextFocus();
            }
        });

3 个答案:

答案 0 :(得分:0)

以下三种方式显示,您可以使用其中任何一种

  • inputType ="actionNext"属性

  • android:imeOptions="actionNext"

  • android:singleLine="true"android:nextFocusDown="@+id/secondText"

    .xml 上,您可以执行此操作。

如果您想在活动或片段中以编程方式进行操作,请尝试以下操作: -

firstText.setOnEditorActionListener(new OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event){
        if (actionId == EditorInfo.IME_ACTION_NEXT) {

            secondText.requestEditTextFocus();

            return true; // Focus will do whatever you put in the logic.
        }
        return false;  // Focus will change according to the actionId
    }
});

我已使用已设置的程序集进行了测试,其中secondText.requestEditTextFocus();更改为secondText.requestFocus(); 且工作正常。

请在下面显示屏幕截图

enter image description here

enter image description here

答案 1 :(得分:0)

你可以尝试这些

android:nextFocusDown="@+id/secondText"  
android:nextFocusLeft="@+id/secondText"    
android:nextFocusRight="@+id/secondText"    
android:nextFocusUp="@+id/secondText"  

答案 2 :(得分:0)

将一个值赋予xml文件中的edittext ..

  android:singleLine="true"