在多行edittext中按下输入键时如何移动到下一个输入字段?

时间:2013-12-31 07:25:13

标签: android android-edittext

我正在使用editText来描述用户,我想要的是用户可以输入描述,当他按下回车键时,焦点将转到下一个输入字段,而不是在描述中添加新行editText 。怎么实现这个? 我正在使用的editText是: -

<EditText
                    android:id="@+id/descriptionEditText"
                    android:layout_width="fill_parent"
                    android:layout_height="200px"
                    android:layout_gravity="center_vertical"
                    android:layout_marginBottom="20px"
                    android:layout_marginLeft="10px"
                    android:layout_marginTop="20px"
                    android:background="@drawable/edittext_modified_states"
                    android:cursorVisible="true"
                    android:gravity="left|top"
                    android:hint="Description"
                    android:padding="10px"
                    android:textColor="@color/black"
                    android:textCursorDrawable="@null"
                    android:textSize="30px"
                     />

3 个答案:

答案 0 :(得分:1)

你可以使用这个:

 urEditView.setNextFocusDownId(R.id.id_of_edit_where_you_want_to_focus);

 urEditView.setOnKeyListener(new OnKeyListener() {

        public boolean onKey(View v, int keyCode, KeyEvent event) {
            // If the event is a key-down event on the "enter" button
            if ((event.getAction() == KeyEvent.ACTION_DOWN)
                    && (keyCode == KeyEvent.KEYCODE_ENTER)) {
                // Perform action on Enter key press
                urEditView.clearFocus();
                urnewEditText.requestFocus();
                return true;
            }
            return false;
        }
    });

答案 1 :(得分:0)

final EditText remark = new EditText(MyClass.this);    
remark.setRawInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);

使用它,就像你想要的那样。

答案 2 :(得分:0)

您可以使用textwatcher类查找enter,然后请求焦点到下一个编辑文本

 descriptionEditText.addTextChangedListener(new TextWatcher() {
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

            // TODO Auto-generated method stub
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            // TODO Auto-generated method stub
        }

        @Override
        public void afterTextChanged(Editable s) {

            // TODO Auto-generated method stub
        }
    });