2011-11-04 9 views
1

사용자가 쓸 수있는 EditText가 있습니다. 앱이 시작될 때 이미 EditText에 문자열이 있습니다. 사용자가 편집 텍스트를 클릭하면 초점이 맞추어지고 커서는 사용자가 편집 텍스트 상자를 클릭 한 곳입니다.EditText에 포커스가있을 때 어떻게 대응할 수 있습니까?

내가 처음에 커서를 설정하기위한 코드는 것을 알고 :

editText.setSelection(0); 

그러나이 코드를 넣어 어디 나도 몰라, 내가 beforeTextChanged에서 그것을 시도하지만하지 않았다 일.

답변

1

putting an OnFocusChangedListener을 설정하면됩니다. 당신이 뭔가를 할 거라고 : et 당신이 리스너에 설정할 텍스트 편집이다

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

.

전체보기 :이 코드를 직접 사용해 본적이 없습니다.

+0

코드 예제를 추가 할 수 있습니까? 내가 가지고 있다고 말할 수 있습니다 : EditText et = (EditText) findViewById (R.id.timeET); – Belgi

+0

나는 이것을 초 단위로 시도 할 것이다 – Belgi

+0

그냥 예제를 추가했다. 말이 돼? –

1

아마도 이렇게하는 방법이 있지만 사용자가 특정 위치에서 텍스트 상자를 누르면 커서가 실제로 있기를 기대하기 때문에 최상의 사용자 환경이라고 확신하지는 못합니다. 예를 들어, 사용자가 "abcd"가 거기에 쓰여지고 "abcde"로 편집하려는 경우, "끝에서 탭하고 'e'를 추가한다고 생각하면 상상해보십시오. 예상대로 작동하지 않을 때 사용자의 좌절을 상상해보십시오.

사용자가 텍스트 상자를 편집 할 것으로 예상되면 비워 두는 것이 좋습니다. 기존 텍스트를 힌트 ("[email protected]")로 사용하는 경우 다른 방법으로 표시하는 것이 좋습니다.

+0

EditText에 내용이 없으면'setHint (CharSequence)'를 사용하여 힌트를 표시 할 수 있습니다. –

+0

나는 이것을 고려할 것이고, 나는 오직 사용자에게 도움을주고 싶다. 그가 (작은) 텍스트 상자의 시작 부분에 도달하게하지 말아라. – Belgi

관련 문제