Android 소프트 키 보드가 에뮬레이터에 표시되지 않음



안드로이드 에뮬레이터 설치 (5)

에뮬레이터가 하드웨어 키보드 를 사용하도록 설정되어 있지 않은지 확인해야합니다. 이 작업은 AVD에서 선택한 에뮬레이터에서 Edit 을 선택하여 수행 할 수 있습니다. 그런 다음 Hardware keyboard present 설정의 선택을 취소 하십시오.

Genymotion 과 같은 다른 에뮬레이터를 사용해 볼 수도 있습니다. 그것은 완전한 하드웨어 가속 (멀티 코어 CPU와 GPU)을 지원하며 안드로이드 에뮬레이터 이미지보다 훨씬 빠르게 실행됩니다. Genymotion을 사용한다면 Android에서 하드웨어 키보드를 비활성화해야합니다 (자세한 내용은 아래 참조).

Genymotion에서 하드웨어 키보드를 비활성화하려면,
Settings -> Language & input 이동하여 Keyboard & Input Methods 에서 Default 항목을 엽니 다. 켜기 / 끄기를 전환 할 수있는 Hardware 설정이 있습니다. 텍스트 키보드가 켜져 있을 때 실제 키보드를 사용하고 텍스트 키보드가 꺼지면 텍스트 필드에 포커스가있을 때마다 표준 소프트 키보드가 팝업됩니다.

Genymotion 설정 스크린 샷 :

나는 안드로이드가 처음이다. 이미 검색을 위해 2 시간을 보냈습니다. Softkeyboard를 시도해도 내 EditText 표시되지 않습니다. 나는 그것을 간단히 창조한다.

EditText editText = (EditText)findViewById(R.id.editText);

나는 시도했다 :

 editText.requestFocus();//i tried without this line too
 InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
 imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);

과:

editText.setOnFocusChangeListener(new OnFocusChangeListener() {

         @Override
         public void onFocusChange(View v, boolean hasFocus) 
         {    

                     InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
                     imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);

         }
     });

나는 또한 시험했다 :

getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE);

나는 AndroidManifest.xml 파일에이 줄을 넣으려고했다.

 android:windowSoftInputMode="stateVisible|adjustResize"

그러나 모두 헛된 것입니다. 단지 결코 보여주지 않습니다. 나는 무엇을 놓치고 있습니까?


Android Studio 2 + 에뮬레이터 용 온 - 스크린 소프트 키보드를 사용하는 방법은 에뮬레이터의 API 수준에 따라 다릅니다. API 15로 시작하는 다양한 메소드를 테스트했으며 아래 단계를 기록했습니다.

[A] API 15, 17, 19 및 21.

다음 단계는 온 스크린 소프트 키보드를 활성화하지만 하드웨어 컴퓨터 키보드를 사용하여 텍스트를 입력하고 AVD와 상호 작용하는 기능을 비활성화합니다.

  1. Android 가상 장치 관리자 (AVD)에서 작업 할 장치의 편집 작업을 클릭하십시오.
  2. 고급 설정 표시를 클릭하고 페이지 하단의 '키보드'섹션으로 스크롤하십시오.
  3. "키보드 입력 사용"옵션의 선택을 취소하십시오.

[B] API 22

소프트 키보드는 하드웨어 키보드 설정으로 상관없이 표시됩니다. 소프트 키보드와 함께 하드웨어 키보드 지원을 사용하려면,

  1. AVD에서 작업 할 장치의 편집 작업을 클릭하십시오.
  2. 고급 설정 표시를 클릭하고 페이지 하단의 '키보드'섹션으로 스크롤하십시오.
  3. "키보드 입력 사용"옵션을 확인하십시오.

[C] API 23

하드웨어 및 소프트 키보드를 사용하려는 경우 ...

  1. [B] 1 ~ 3 단계 따르기
  2. 가상 장치에서 설정 시작을 클릭 한 다음 언어 및 입력 / 현재 키보드를 선택합니다.
  3. 하드웨어 사용 - 입력 방법 표시

하드웨어 키보드가 필요없는 경우 AVD 고급 설정에서 "키보드 입력 사용"옵션의 선택을 취소하십시오. 가상 장치의 설정을 변경할 필요가 없습니다.

[D] API 24 및 25

  1. 위의 [B] 단계 1 ~ 3을 수행하고 하드 키보드를 활성화할지 여부에 따라 "키보드 입력 사용"옵션을 선택 또는 선택 취소하십시오.
  2. 가상 장치에서 설정 시작을 클릭 한 다음 언어 및 입력 / 실제 키보드를 선택합니다.
  3. '가상 키보드 표시'사용

AVD에서 키보드 입력 사용 옵션이 선택된 경우 이제 하드 및 소프트 키보드 입력을 모두 사용할 수 있습니다. AVD의 옵션을 선택 해제하면 소프트 키보드가 표시됩니다.

[E] API 26

언어 및 입력 / 실제 키보드를 사용하기 전에 장치 설정의 추가 "시스템"메뉴 레벨을 탐색해야한다는 점을 제외하고는 [D] API 24 및 25와 완전히 동일합니다


표시 방법 :

EditText editText = (EditText) findViewById(R.id.myEdit);
InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
// only will trigger it if no physical keyboard is open
mgr.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);

그리고 숨기기 위해서 :

InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.hideSoftInputFromWindow(editText.getWindowToken(), 0);

그냥 이걸 시도해보십시오 ....


버전 2.1.1에서 가상 장치 설정을 클릭 한 다음 "입력에 가상 키보드 사용"확인란을 선택하십시오.


에뮬레이터가 softkeyboard를 지원하지 않을 수 있습니다 ..

하드웨어 속성 키보드 지원을 추가하고 에뮬레이터에 대해 true로 설정하십시오.

이미 사실이라면 이 대답 을 확인하십시오.





keyboard