我有一個用戶可以寫入的EditText,當應用程序啓動時,EditText中已經有一個字符串。當用戶點擊EditText時,它變得聚焦並且光標是用戶點擊EditText文本框的地方。當EditText被聚焦時,我該如何反應?
我知道的光標設置爲開始的代碼是:
editText.setSelection(0);
但我不知道在哪裏可以把這個代碼,我試圖將它在beforeTextChanged但它沒有這樣做的工作。
我有一個用戶可以寫入的EditText,當應用程序啓動時,EditText中已經有一個字符串。當用戶點擊EditText時,它變得聚焦並且光標是用戶點擊EditText文本框的地方。當EditText被聚焦時,我該如何反應?
我知道的光標設置爲開始的代碼是:
editText.setSelection(0);
但我不知道在哪裏可以把這個代碼,我試圖將它在beforeTextChanged但它沒有這樣做的工作。
您可以通過設置putting an OnFocusChangedListener來完成此操作。你會做這樣的事情:
et.setOnFocusChangeListener(new View.OnFocusChangeListener(){
public void onFocusChange(View view, boolean hasFocus){
if(hasFocus){
((EditText)view).setSelection(0);
}
}
});
哪裏et
是你要設置的監聽器上的文本編輯。
全discolsure:還沒有嘗試過自己的代碼。
雖然可能有一種方法可以做到這一點,但我並不完全確定這是最好的用戶體驗,因爲當用戶點擊某個特定位置的文本框時,他們確實希望光標在那裏。想象一下,例如,如果用戶在那裏看到「abcd」,並且想要將其編輯爲「abcde」,所以他們會指出「我只是在最後點擊並附加一個'e'」。想象一下,當用戶無法按預期工作時,用戶感到沮喪。
如果您希望用戶編輯文本框,我會考慮將它留空。如果您使用現有的文本作爲提示(「[email protected]」),則以其他方式指出這可能是一個更好的主意。
當EditText內容爲空時,您可以使用'setHint(CharSequence)'來顯示提示。 –
我會考慮到這一點,我只想幫助用戶,而不是讓他嘗試去(小)文本框的開頭。 – Belgi
請問您可以添加代碼示例嗎? 可以說我有:EditText et =(EditText)findViewById(R.id.timeET); – Belgi
我會在一秒內嘗試這個 – Belgi
剛剛添加的例子。那有意義嗎? –