[android] 화면이 나타날 때 필드의 자동 초점 / 키보드 팝업을 제거하는 방법은 무엇입니까?

첫 번째 필드가 EditText 인 화면이 있고 시작시 초점이 맞춰지고 숫자 입력 유형도 팝업되어 매우 짜증납니다.

활동이 시작될 때 포커스를 얻지 못하거나 입력 패널이 올라가지 않는지 어떻게 확인할 수 있습니까?



답변

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editTextField.getWindowToken(), 0);

또는

응용 프로그램 태그에서 아래와 같이 매니페스트 파일의 활동 속성을 설정합니다.

android:windowSoftInputMode="stateHidden"


답변

애플리케이션 매니페스트 파일로 이동하여 자동 키보드 팝업을 비활성화하려는 활동에 대해이 줄을 작성합니다.

android:windowSoftInputMode="stateHidden"


답변

프로그래밍 방식으로 키보드를 표시하지 않지만 기본 위젯이 여전히 포커스 호출을 수신하려면 :

getWindow().setSoftInputMode(WindowManager.
                             LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

onResume()


답변

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

내부에 상기 방법 호출 에서 onCreate () .IT 방지 softKeyboard을 사용자가 선택하지 않으면 보여 글고을 하여tapping or clicking.

또는 단순히 android:windowSoftInputMode="stateHidden"활동 태그를Manifest.xml


답변

이것은 일반적으로 엉망입니다. 가장 먼저 시도하는 것은를 통해 다른 뷰로 초점을 훔치는 것입니다. 또한 focusable 및 focusableInTouchMode가 있어야합니다.

<TextView
  ...
  android:focusable="true"
  android:focusableInTouchMode="true">

    <requestFocus/>
</TextView>


답변

다른 뷰로 초점을 맞 춥니 다. 기본적으로 첫 번째 포커스 가능한 뷰는 레이아웃이 확장 될 때 포커스를받습니다. XML을 통해 다른 뷰에 대한 포커스를 요청할 수 있습니다.

<TextView
    android:layout_width="wrap_parent"
    android:layout_height="wrap_content"
    android:text="Some other view">

    <requestFocus />
</TextView>

이것은 모든보기에서 작동합니다.

프로그래밍 방식으로 수행하려면 view.requestFocus().


답변

if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT_INPUT_STATE_UNSPECIFIED)
{
    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
}