1

我在我的应用程序中添加了两个 editText 框,在第一个中输入值后,我想在按 Enter 时移至下一个 editText 框?这是我到目前为止所尝试的......

editText1.setOnKeyListener(new OnKeyListener(){

    public boolean onKey(View v, int keyCode, KeyEvent event){
        if((event.getAction()==KeyEvent.ACTION_DOWN)&&(keyCode==KeyEvent.KEYCODE_ENTER))
        {
            editText1.clearFocus();
            editText2.requestFocus();
            return true;
        }
        return false;
    }
});}
4

2 回答 2

2

您是否在布局 XML 中android:singleLine="true"添加了行?EditText或者,您也可以在代码中使用setSingleLine()来设置它。这会强制编辑文本仅使用一行,当您按下 Enter 时,焦点将转到下一个 EditText 框。请参阅@Scott 在Handle enter key in EditText across different devices上的回答

于 2013-08-25T02:12:19.410 回答
1

您可以在 EditText XML 布局中使用许多 IME 选项,并请求关注它。例子:

 <EditText
            android:id="@+id/EditText_Search"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:background="@drawable/custom_search_box"
            android:freezesText="true"
            android:gravity="center_horizontal"
            android:hint="Enter information"
            android:imeOptions="actionNext"
            android:inputType="text"
            android:padding="10dp"
            android:saveEnabled="true"
            android:scrollHorizontally="true"
            android:textColor="@color/black" />
    <requestFocus />

关键是android:imeOptions设置为“下一步”。View你可以在你的to中设置最终的 editTextandroid:imeOptions="done"并用它做一些事情,也许是 Login 或类似的东西。最后是结束标签<requestFocus />

我希望这会有所帮助,快乐的编码!

于 2013-08-25T02:21:41.917 回答