2011-11-04 43 views
1

我有一個用戶可以寫入的EditText,當應用程序啓動時,EditText中已經有一個字符串。當用戶點擊EditText時,它變得聚焦並且光標是用戶點擊EditText文本框的地方。當EditText被聚焦時,我該如何反應?

我知道的光標設置爲開始的代碼是:

editText.setSelection(0); 

但我不知道在哪裏可以把這個代碼,我試圖將它在beforeTextChanged但它沒有這樣做的工作。

回答

1

您可以通過設置putting an OnFocusChangedListener來完成此操作。你會做這樣的事情:

et.setOnFocusChangeListener(new View.OnFocusChangeListener(){ 
    public void onFocusChange(View view, boolean hasFocus){ 
    if(hasFocus){ 
     ((EditText)view).setSelection(0); 
    } 
    } 
}); 

哪裏et是你要設置的監聽器上的文本編輯。

全discolsure:還沒有嘗試過自己的代碼。

+0

請問您可以添加代碼示例嗎? 可以說我有:EditText et =(EditText)findViewById(R.id.timeET); – Belgi

+0

我會在一秒內嘗試這個 – Belgi

+0

剛剛添加的例子。那有意義嗎? –

1

雖然可能有一種方法可以做到這一點,但我並不完全確定這是最好的用戶體驗,因爲當用戶點擊某個特定位置的文本框時,他們確實希望光標在那裏。想象一下,例如,如果用戶在那裏看到「abcd」,並且想要將其編輯爲「abcde」,所以他們會指出「我只是在最後點擊並附加一個'e'」。想象一下,當用戶無法按預期工作時,用戶感到沮喪。

如果您希望用戶編輯文本框,我會考慮將它留空。如果您使用現有的文本作爲提示(「[email protected]」),則以其他方式指出這可能是一個更好的主意。

+0

當EditText內容爲空時,您可以使用'setHint(CharSequence)'來顯示提示。 –

+0

我會考慮到這一點,我只想幫助用戶,而不是讓他嘗試去(小)文本框的開頭。 – Belgi

相關問題