指定鍵盤類型
android:inputType = "phone | textPassword | textMultiLine | text"
android:imeOptions="actionSend | actionSearch | actionDone | actionGo"
EditText editText = (EditText) findViewById(R.id.search);
//顯示密碼框内容
editText.setInputType(InputType.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_VARIATION_NORMAL);
//隐藏密碼框内容
editText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
editText.setImeOptions(EditorInfo.IME_ACTION_GO);
//設定光标位置在文本框末尾
editText.setSelection(mEditPwd.getText().toString().length());
//show the password
editText.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
//hide the password
editText.setTransformationMethod(PasswordTransformationMethod.getInstance());
editText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
boolean handled = false;
if (actionId == EditorInfo.IME_ACTION_SEND) {
sendMessage();
handled = true;
}
return handled;
}
});
将輸入到 EditText 中的小寫字母轉化為大寫字母
//----------------小寫轉化為大寫--------------------------//
public class InputLowerToUpper extends ReplacementTransformationMethod{
@Override
protected char[] getOriginal() {
char[] lower = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z' };
return lower;
}
@Override
protected char[] getReplacement() {
char[] upper = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z' };
return upper;
}
}
final EditText textCarNumber=(EditText) viewNew.findViewById(R.id.borrow_carnumber);
textCarNumber.setTransformationMethod(new InputLowerToUpper());
在Activity啟動時顯示輸入法
android:windowSoftInputMode="stateVisible"
InputMethodManager
public void showSoftKeyboard(View view) {
if (view.requestFocus()) {
InputMethodManager imm = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
}
}
指定 UI 的響應方式
android:windowSoftInputMode = "adjust"
android:windowSoftInputMode="adjustResize"
處理單個按鍵事件
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_D:
moveShip(MOVE_LEFT);
return true;
case KeyEvent.KEYCODE_F:
moveShip(MOVE_RIGHT);
return true;
case KeyEvent.KEYCODE_J:
fireMachineGun();
return true;
case KeyEvent.KEYCODE_K:
fireMissile();
return true;
default:
return super.onKeyUp(keyCode, event);
}
}
處理修飾鍵
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
switch (keyCode) {
...
case KeyEvent.KEYCODE_J:
if (event.isShiftPressed()) {
fireLaser();
} else {
fireMachineGun();
}
return true;
case KeyEvent.KEYCODE_K:
if (event.isShiftPressed()) {
fireSeekingMissle();
} else {
fireMissile();
}
return true;
default:
return super.onKeyUp(keyCode, event);
}
}