在最后一个EditText的键盘上完成后隐式的“提交”

我已经使用了一些应用程序,当我填写我的用户名,然后去我的密码,如果我点击键盘上的“完成”,login表单会自动提交,无需点击提交button。 这是怎么做的?

尝试这个:

在你的布局放/编辑这个:

<EditText android:id="@+id/search_edit" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="text" android:singleLine="true" android:imeOptions="actionDone" /> 

在你的活动中把这个(例如在onCreate):

  // your text box EditText edit_txt = (EditText) findViewById(R.id.search_edit); edit_txt.setOnEditorActionListener(new EditText.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_DONE) { submit_btn.performClick(); return true; } return false; } }); 

其中submit_btn是您的提交button与您的onclick处理程序附加。

您需要在EditText上设置IME选项。

 <EditText android:id="@+id/some_view" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="Whatever" android:inputType="text" android:imeOptions="actionDone" /> 

然后添加一个OnEditorActionListener到视图来监听“完成”操作。

 EditText editText = (EditText) findViewById(R.id.some_view); editText.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { boolean handled = false; if (actionId == EditorInfo.IME_ACTION_DONE) { // TODO do something handled = true; } return handled; } }); 

官方API文档: https : //developer.android.com/guide/topics/ui/controls/text.html#ActionEvent

这是如何完成的

 editText.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if(actionId==EditorInfo.IME_ACTION_DONE){ //do something } return false; } }); 

不要忘记添加

 <EditText android:layout_height="wrap_content" android:layout_width="wrap_content" android:imeOptions="actionDone"/> 

actionDone在你的EditText中。

 <EditText android:id="@+id/signinscr_userName" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/userName" android:imeOptions="actionNext" /> <EditText android:id="@+id/signinscr_password" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/password" android:imeOptions="actionDone" android:inputType="textPassword" /> 

在.java文件中

 EditText userNameField = (EditText) findViewById(R.id.signinscr_userName); EditText passwordField = (EditText) findViewById(R.id.signinscr_password); passwordField.setOnEditorActionListener(new OnEditorActionListener() { public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) { //Do your operation here. return false; } }); 
  EditText edit_txt = (EditText) findViewById(R.id.search_edit); edit_txt.setOnEditorActionListener(new EditText.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { // which is u had set a imeoption if (actionId == EditorInfo.IME_ACTION_DONE) { submit_btn.performClick(); return true; } return false; } });