簡體   English   中英

Android:EditText 上的軟鍵盤退格鍵不起作用

[英]Android: soft keyboard Backspace on EditText not working

這就是發生的事情:活動 A 和 B 有一個EditText並且它們都有IME_SEARCH 輸入只能通過三星平板電腦上的軟鍵盤完成。 在 Activity AI 上可以毫無問題地使用EditText 問題是,在我點擊“空格”或每當我使用建議中的單詞時,Activity BI 無法使用退格鍵擦除文本。 它的行為就像那里不再有文本。 如果我輸入新字符,我可以將它們擦除到空格。

要點:

  1. 包含EditTexts的 View 層次是相同的
  2. 配置IME_SEARCH處理的代碼(通過setOnEditorActionListener )是相同的
  3. 兩者的TextWatcher也相同
  4. 在 Manifest 中,兩個活動都配置為
    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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM