默認情況下軟鍵盤右下角的按鈕為“下一個”,點擊會到下一個輸入框,保持軟鍵盤

設置 android:imeOptions="actionDone" ,軟鍵盤下方變成“完成”,點擊后光標保持在原來的輸入框上,並且軟鍵盤關閉

android:imeOptions="actionSend" 軟鍵盤下方變成“發送”,點擊后光標移動下一個
在這里設置的imeOptions如何使用呢?如下面的代碼,讓EditText實現setOnEditorActionListener,在onEditAction方法中actionId就對應我們設置的imeOptions。系統默認的actionId有:EditorInfo.IME_NULL、EditorInfo.IME_ACTION_SEND、EditorInfo.IME_ACTION_DONE等。這樣我們就可以根據不同的EditText來實現不同的軟鍵盤右下角功能鍵。
package com.test; import com.test.main.TestAsyn; import android.app.Activity; import android.os.Bundle; import android.view.KeyEvent; import android.view.inputmethod.EditorInfo; import android.widget.EditText; import android.widget.TextView; import android.widget.TextView.OnEditorActionListener; import android.widget.Toast; public class IMFActivity extends Activity implements OnEditorActionListener { EditText etDefault; EditText etEmail; EditText etNumber; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.imf_layout); etDefault = (EditText)findViewById(R.id.default_content); etEmail = (EditText)findViewById(R.id.email_content); etNumber = (EditText)findViewById(R.id.number_content); etDefault.setOnEditorActionListener(this); etEmail.setOnEditorActionListener(this); etNumber.setOnEditorActionListener(this); } @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { switch(actionId){ case EditorInfo.IME_NULL: System.out.println("null for default_content: " + v.getText() ); break; case EditorInfo.IME_ACTION_SEND: System.out.println("action send for email_content: " + v.getText()); break; case EditorInfo.IME_ACTION_DONE: System.out.println("action done for number_content: " + v.getText()); break; } //Toast.makeText(this, v.getText()+"--" + actionId, Toast.LENGTH_LONG).show(); return true; } }
