androidEditTextinputType及android:imeOptions=”actionDone”(转)
如果布局中包含多個EditText,可以為每個EditText控件設(shè)置android:singleLine=”true”,彈出的軟盤輸入法中回車鍵為next,直到最后一個獲取焦點后顯示為Done。點擊Done后,隱藏軟鍵輸入盤。將EditText的imeOptions屬性設(shè)置android:imeOptions=”actionDone”,則不管是不是最后一個EditText,點擊回車鍵即隱藏輸入法。
監(jiān)聽Enter的事件,編寫Enter的事件響應(yīng)。設(shè)置文本框的OnKeyListener,當(dāng)keyCode ==KeyEvent.KEYCODE_ENTER的時候,表明Enter鍵被按下,就可以編寫自己事件響應(yīng)功能了。
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屬性設(shè)置成不同的值,Enter鍵上可以顯示不同的文字或圖案。
actionNone : 回車鍵,按下后光標(biāo)到下一行
actionGo : Go,
actionSearch : 一個放大鏡
actionSend : Send
actionNext : Next
actionDone : Done,隱藏軟鍵盤,即使不是最后一個文本輸入框
添加監(jiān)聽事件: 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 //業(yè)務(wù)代碼 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 };? ? ? ? 但是,如果手機的輸入法不是內(nèi)置輸入法,而是其他第三方輸入法,那么可能會發(fā)生軟件盤回車鍵無響應(yīng)的問題。為了防止該類事情,則增加紅色部分,響應(yīng)的其KeyEvent。 這時候需要在代碼中添加事件響應(yīng)。
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;
}
});
//響應(yīng)鍵盤內(nèi)容
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);
}
};
轉(zhuǎn)載于:https://www.cnblogs.com/adison/p/3873671.html
總結(jié)
以上是生活随笔為你收集整理的androidEditTextinputType及android:imeOptions=”actionDone”(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 淄博烧烤与青岛烧烤的区别在哪里?
- 下一篇: HDU 1506 Largest Rec