[英]Android: soft keyboard Backspace on EditText not working
這就是發生的事情:活動 A 和 B 有一個EditText
並且它們都有IME_SEARCH
。 輸入只能通過三星平板電腦上的軟鍵盤完成。 在 Activity AI 上可以毫無問題地使用EditText
。 問題是,在我點擊“空格”或每當我使用建議中的單詞時,Activity BI 無法使用退格鍵擦除文本。 它的行為就像那里不再有文本。 如果我輸入新字符,我可以將它們擦除到空格。
要點:
EditTexts
的 View 層次是相同的IME_SEARCH
處理的代碼(通過setOnEditorActionListener
)是相同的TextWatcher
也相同android:configChanges="keyboardHidden|keyboard|orientation" android:windowSoftInputMode="stateAlwaysHidden|adjustUnspecified"
我在兩個TextWatcher
beforeTextChanged
方法上設置了一個斷點。 我插入了一個“空格”並點擊了“退格”。 在活動 A 的Edittext
上,觸發了該方法,但在活動 B 上未觸發該方法。 我看不出發生這種情況的原因,因為兩個Edittext
的屬性配置相同。 我也嘗試刪除IME
選項,但行為保持不變。
有誰知道會發生什么?
編輯 1:
searchTxt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (s.length() == 0) {
btnClear.setVisibility(View.GONE);
} else{
btnClear.setVisibility(View.VISIBLE);
}
}
});
searchTxt.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
buildGrid();
return true;
}
return false;
}
});
編輯 2:布局層次結構如下。
<LinearLayout
... >
<include layout="@layout/title_bar" />
<RelativeLayout
...>
<EditText
...>
問題是,由於某種原因,活動B覆蓋了dispatchKeyEvent()
並始終返回true
。 刪除它解決了問題。
我有你面臨的類似問題,我以某種方式設法偶然發現了解決方案。 顯然,我已將 setOnKeyListener 設置為“返回 true”。 在我將其更改為“返回假”后,電話鍵盤完美運行,退格鍵再次在 edittext 上正常運行。 希望這可以幫助:
.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
...
return false;
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.