我需要檢測EditText中的文本更改。我已經嘗試了TextWatcher,但它不能以我期望的方式工作。就拿onTextChanged方法:檢測EditText中的更改(TextWatcher無效)
public void onTextChanged(CharSequence s, int start, int before, int count)
說我有文字「約翰」在已經在EditText上。如果按另一個鍵「e」,s
將爲「Johne」,start
將爲0,before
將爲4,並且count
將爲5.我期望此方法工作的方式將是EditText之前的差異是,以及將要成爲什麼樣的人。
,所以我期望:
s = "Johne"
start = 4 // inserting character at index = 4
before = 0 // adding a character, so there was nothing there before
count = 1 // inserting one character
我需要能夠每一個鍵被按下的時間來檢測各個更改。所以如果我有文本「約翰」,我需要知道在索引4處添加了「e」。如果我退格「e」,我需要知道從索引4中刪除了「e」。如果將光標放在「J 「並且退格時,我需要知道從指數0中刪除了」J「。如果我在其中加入了」J「的」G「,我想知道指數爲0的」G「代替了」J「。
我可以做到這一點嗎?我想不出一個可靠的方法來做到這一點。
嘗試onKeyListener的EditText上 – 2012-02-27 03:32:42
怎麼樣從剪貼板粘貼? – 2012-02-27 16:14:32
我遇到的另一個問題是說我選擇了一個文本範圍。在任何TextWatcher方法中,getSelectionStart和End始終是相同的索引,無論我是否選擇了文本。 – 2012-02-27 16:44:28