標籤:android edittext imeoptions IME
在我們的手機中,雖然通常IME軟鍵盤右下角會是斷行符號按鍵,但我們經常會看到點擊不同的編輯框,IME軟鍵盤右下角會有不同的表徵圖。例如:
點擊瀏覽器網址欄的時候,IME軟鍵盤右下角會變成“GO”或“前往;
而我們點擊Google搜尋方塊,IME軟鍵盤右下角會變成 放大鏡 或者“搜尋”。
而決定這個表徵圖的變換的參數就是EditText中的 android:imeOptions屬性。android:imeOptions的值有actionGo、 actionSend 、actionSearch、actionDone等
設定 android:imeOptions=”actionDone” ,軟鍵盤下方變成“完成”,點擊後游標保持在原來的輸入框上,並且軟鍵盤關閉。
android:imeOptions=”actionSend” 軟鍵盤下方變成“發送”,點擊後游標移動下一個。
在這裡設定的imeOptions如何使用呢?如下面的代碼,讓EditText實現OnEditorActionListener介面,在onEditorAction方法中actionId就對應我們設定的imeOptions。系統預設的actionId有:EditorInfo.IME_NULL、EditorInfo.IME_ACTION_SEND、EditorInfo.IME_ACTION_DONE等。這樣我們就可以根據不同的EditText來實現不同的軟鍵盤右下角功能鍵。
public class IMEOptionsActivity extends Activity implements OnEditorActionListener { EditText etDone; EditText etEmail; EditText etNumber; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.imf_layout); etDone= (EditText)findViewById(R.id.done_content); etEmail = (EditText)findViewById(R.id.email_content); etNumber = (EditText)findViewById(R.id.number_content); etDone.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("Done_content: " + v.getText() ); break; case EditorInfo.IME_ACTION_SEND: System.out.println("send a email: " + v.getText()); break; case EditorInfo.IME_ACTION_DONE: System.out.println("action done for number_content: " + v.getText()); break; } return true; } }
Android EditText imeOptions屬性詳解