2014-09-02 80 views
1

我有一個MultiAutoCompleteTextView綁定到一個TextWatcher和一個適配器,根據字段中鍵入的內容從數據庫返回的東西。這一切都正常工作,但我正在尋找一種方法來更改默認的標記定義行爲,所以當用戶在標記的某個位置點擊並添加一個字符時,整個標記將被視爲查詢輸入,而不是文本從最左邊的標記到光標。MultiAutoCompleteTextView令牌定義

這裏有一個稍微具體的例子:

  1. 我有數據如下:A,B,AA,AB,AAB,ABB,ABA,BB
  2. 我已經進入了下列標記:AA, BB
  3. 我把光標放在兩個A之間(即| A)
  4. 我輸入字母 'b'
  5. 我得到以下建議:AB
  6. 我期望的suggestio n代表:aba

我希望我解釋得很好。我做了一個小樣本項目,使用了沒有花哨的東西,只有默認和一個簡單的String數組,我有相同的行爲,這似乎與文檔如何定義與遊標位置相關的記號相一致。

那麼,有沒有一種可靠的方法可以包含以我的示例中描述的其他方式返回的建議?即使我們的SO標籤系統也是這樣工作的。

回答

1

您需要使用setTokenizer()函數在您的MultiAutoCompleteTextView上設置自定義MultiAutoCompleteTextView.Tokenizer。覆蓋findTokenStartfindTokenEnd函數以確保它抓取要修改的整個文本。