androidEditTextinputType及android:imeOptions=”actionDone”(转)
如果布局中包含多個EditText,可以為每個EditText控件設置android:singleLine=”true”,彈出的軟盤輸入法中回車鍵為next,直到最后一個獲取焦點后顯示為Done。點擊Done后,隱藏軟鍵輸入盤。將EditText的imeOptions屬性設置android:imeOptions=”actionDone”,則不管是不是最后一個EditText,點擊回車鍵即隱藏輸入法。
監聽Enter的事件,編寫Enter的事件響應。設置文本框的OnKeyListener,當keyCode ==KeyEvent.KEYCODE_ENTER的時候,表明Enter鍵被按下,就可以編寫自己事件響應功能了。
XML文件如下:
1 <EditText 2 android:id="@+id/editTextId" 3 android:layout_width="fill_parent" 4 android:layout_height="50dp" 5 android:imeOptions="actionDone" 6 android:hint="@string/task_new_one" 7 android:textSize="15sp" 8 android:singleLine="true" 9 android:paddingLeft="5dp" 10 android:layout_gravity="center" 11 android:background="@drawable/rectangle" 12 android:inputType="text" 13 > 14 </EditText>把EditText的Ime Options屬性設置成不同的值,Enter鍵上可以顯示不同的文字或圖案。
actionNone : 回車鍵,按下后光標到下一行
actionGo : Go,
actionSearch : 一個放大鏡
actionSend : Send
actionNext : Next
actionDone : Done,隱藏軟鍵盤,即使不是最后一個文本輸入框
添加監聽事件: 1 private final EditText.OnEditorActionListener editorActionListener = 2 new TextView.OnEditorActionListener() { 3 @Override 4 public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 5 if (actionId == KeyEvent.ACTION_DOWN || actionId == EditorInfo.IME_ACTION_DONE) { 6 //業務代碼 7 haoMent.createTest(Test.getId(), v.getText().toString()); 8 UiUtils.hideSoftKeyboard(getApplicationContext(), haoTest.this); 9 v.setText(""); 10 v.clearFocus(); 11 handler.post(updateView); 12 } 13 return true; 14 } 15 };? ? ? ? 但是,如果手機的輸入法不是內置輸入法,而是其他第三方輸入法,那么可能會發生軟件盤回車鍵無響應的問題。為了防止該類事情,則增加紅色部分,響應的其KeyEvent。 這時候需要在代碼中添加事件響應。
inputKey = (EditText) findViewById(R.id.contactSearch_editText);
inputKey.addTextChangedListener(watcher);
inputKey.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (KeyEvent.KEYCODE_ENTER == keyCode?&& event.getAction() == KeyEvent.ACTION_DOWN) {
handler.post(updateView);
return true;
}
return false;
}
});
//響應鍵盤內容
public TextWatcher watcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i2,int i3) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
}
@Override
public void afterTextChanged(Editable editable) {
handler.post(updateView);
}
};
轉載于:https://www.cnblogs.com/adison/p/3873671.html
總結
以上是生活随笔為你收集整理的androidEditTextinputType及android:imeOptions=”actionDone”(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 淄博烧烤与青岛烧烤的区别在哪里?
- 下一篇: ThinkPHP入门--后盾视频