Programing

포커스가 생기면 EditText 내부의 모든 텍스트를 선택하십시오.

lottogame 2020. 4. 22. 08:07
반응형

포커스가 생기면 EditText 내부의 모든 텍스트를 선택하십시오.


더미 텍스트가있는 EditText가 있습니다. 사용자가 클릭하면 사용자가 입력을 시작하면 더미 텍스트가 삭제되도록 선택하고 싶습니다.

어떻게하면 되나요?


main.xml파일 에서 시도해 볼 수 있습니다 .

android:selectAllOnFocus="true"

editText.setSelectAllOnFocus(true);

프로그래밍 방식으로 수행하려는 경우 작동합니다.


EditText dummy = ... 

// android.view.View.OnFocusChangeListener
dummy.setOnFocusChangeListener(new OnFocusChangeListener(){
    public void onFocusChange(View v, boolean hasFocus){
        if (hasFocus) && (isDummyText())
            ((EditText)v).selectAll();
    }
});

해결책을 찾았지만 실제로 원하는 것을 수행하는 올바른 방법은 android:hintEditText 속성을 사용하는 것입니다. 이 텍스트는 상자가 비어 있고 초점이 맞지 않으면 표시되지만 EditText 상자를 선택하면 사라집니다.


사용자에게 힌트를 제공하기 위해 android : hint = "hint"시도해보십시오 .. !!

사용자가 edittextbox를 클릭하면 "힌트"가 자동으로 사라집니다. 적절하고 최상의 솔루션입니다.


프로그램에 초점을 맞추고 선택하여 관리

{
editabletext.requestFocus();
editabletext.selectAll();
}

SelectAllOnFocus는 EditText가 처음으로 초점을 맞출 때 작동하지만 사용자가 클릭 마다 텍스트를 선택하려면 시간 editText.clearFocus()사이 에 호출해야합니다 .

예를 들어, 앱에 하나의 EditText와 하나의 버튼이있는 경우 EditText를 변경 한 후 버튼을 클릭하면 EditText에 포커스가 남습니다. 그런 다음 사용자는 커서 핸들과 백 스페이스 키를 사용하여 새 값을 입력하기 전에 EditText에있는 내용을 삭제해야합니다. editText.clearFocus()버튼의 onClick메소드를 호출 하십시오 .


다음에 editText에 OnClick 메서드를 추가 할 수도 있습니다.

_editText.setSelectAllOnFocus(true);

그리고 그 안에 :

_editText.clearFocus();
_editText.requestFocus();

editText를 클릭하자마자 전체 텍스트가 선택됩니다.


위의 답변을 시도했지만 진술을 바꿀 때까지 작동하지 않았습니다. 이것이 나를 위해 일한 것입니다.

    myEditText.setSelectAllOnFocus(true);
    myEditText.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            onClickMyEditText();
        }
    });

   private void onClickMyEditText() {
       if(myEditText.isFocused()){
        myEditText.clearFocus();
        myEditText.requestFocus();
       }else{
           myEditText.requestFocus();
           myEditText.clearFocus();
       }
   }

포커스가 EditText에 있는지 묻고 포커스를 먼저 요청하지 않으면 취소하십시오. 그렇지 않으면 다음에 EditText를 클릭했을 때 가상 키보드가 나타나지 않습니다.


이것을 .xml 파일의 editText에 추가하십시오.

android : selectAllOnFocus = "true"


이것은 나를 위해 작동합니다 :

myEditText.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if(myEditText.isFocused()){
                myEditText.requestFocus();
                myEditText.clearFocus();
                myEditText.setSelection(myEditText.getText().length(), 0);
            }else{
                myEditText.requestFocus();
                myEditText.clearFocus();
            }

        }
    });

참고 URL : https://stackoverflow.com/questions/4669464/select-all-text-inside-edittext-when-it-gets-focus

반응형