簡體   English   中英

嘗試在每次檢測到某個字符串時清除TextWatcher並繼續讀取EditText

[英]Trying to clear a TextWatcher every time it detects a certain string and continue reading the EditText

我有一個EditText,我希望在其中可以檢測到用戶何時輸入標記的單詞。 當檢測到該單詞時,按鈕變為可見,並且用戶具有更多選項。 我已經能夠使用TextWatcher做到這一點。 問題是,每次TextTexter檢測到標記的單詞時,我都會存儲在數組中使用的標記的單詞。 但是,一旦單詞在EditText中,則以后輸入的每個字符都會導致將已標記的單詞再次輸入到數組中,因為標記的單詞仍在EditText中。 我想知道,是否有任何方法可以清除TextWatcher,以便一旦我找到一個標記的單詞,它便開始監視我隨后輸入的內容? 以下代碼中的word變量存儲了程序正在檢查的標記單詞。

    txtMessage.addTextChangedListener(new TextWatcher() {
        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {

            // TODO Auto-generated method stub
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {

            // TODO Auto-generated method stub
        }

        @Override
        public void afterTextChanged(Editable s) {
            // TODO Auto-generated method stub
            String tmp = s.toString().trim().toLowerCase();
            if (flagged == true) {
                CheckWords.setVisibility(0);
            }
            if (tmp.contains(word.toLowerCase())) {
                flagwordsused[i] = word;
                //txtPhoneNo.setText(""+tmp);

                i++;
                flagged = true;
            }

        }
    });

您能給我的任何幫助將不勝感激。 也許有完全不同的方式來完成此任務。

我知道了。 我只需要將tmp字符串分成子字符串,然后查看標志字是否包含在子字符串之一中而不是整個EditText中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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