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


86

저는 Android를 처음 사용합니다. 나는 벌써 2 시간을 검색에 보냈다. 내가 시도하는 소프트 키보드는 내 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"

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


다른 응용 프로그램에서 키보드가 열려 있습니까?
Niranj Patel 2013-08-17

이것을 대체하십시오 imm.showSoftInput (editText, InputMethodManager.SHOW_IMPLICIT); 이것은 imm.toggleSoftInput (InputMethodManager.SHOW_FORCED, 0);
Aravin 2013-08-17

@CapDroid 아니요, 안타깝게도. 나는 다른 응용 프로그램에서 시도하지하지만 여전히 운이
안드레이 Chernukha에게

@Aravinth 여전히 작동하지 않습니다
안드레이 Chernukha

에뮬레이터 또는 장치를 사용하고 있습니까?
Aravin 2013-08-17

답변:


211

에뮬레이터가 하드웨어 키보드 를 사용하도록 설정되어 있지 않은지 확인해야합니다 . EditAVD에서 선택한 에뮬레이터를 선택하면 됩니다. 그런 다음 설정을 선택 취소 하십시오 Hardware keyboard present.

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

Genymotion에서 하드웨어 키보드를 비활성화하려면 : ->로
이동하여 에서 항목을 엽니 다 . 켜고 끌 수 있는 설정이 있습니다. 이 경우 당신은 당신의 실제 키보드를 사용하고있을 때 떨어져 표준 소프트 키보드 팝업해야 텍스트 필드에 포커스를 얻을 때마다.SettingsLanguage & inputDefaultKeyboard & Input MethodsHardware

Genymotion 설정 스크린 샷 : 기본 항목

여기에 이미지 설명 입력


4
드디어! 대단히 감사합니다. 나는 당신의 대답을 두 번 찬성 할 수 있기를 바랍니다. Genymotion에 관해서는-한 번 설정하려고 하루를 보냈지 만 작동하지 않았습니다. 난 그들의 지원에 쓸 수
안드레이 Chernukha에게

도움이되어 기쁩니다 :) Genymotion은 지속적으로 개선되고 있지만 아직 미리보기 / 베타입니다. 그러나 사용하기 시작한 이후로 한 가지 문제가 없었습니다. 그들이 대부분의 문제를 해결 한 후 방금 시작했을 수도 있고 운이 좋았습니다. :). 즉, 안드로이드 에뮬레이터는 더 많은 변형을 제공하므로 호환성 테스트에 여전히 사용합니다.
free3dom

좋습니다. 이제 가상 키보드가 생겼습니다! 하지만 android : inputType = "numberDecimal">이있는 EditText가 있고 virtualkeyboard는 숫자를 쓰지 않습니다 (앞에 문자를 쓰는 경우에만 쓰게됩니다). 맞춤법 검사기가 이미 꺼져 있습니다 ...
Michele

여기 에서 가능한 해결책을 찾으 십시오 .
free3dom 2013-08-28

@ free3dom ~ "키보드 및 입력 방법에서 기본 항목 열기"그게 뭐야? 그 항목이 보이지 않습니다.
IgorGanapolsky

73

버전 2.1.1에서-가상 장치 설정을 클릭 한 다음 "입력에 가상 키보드 사용"확인란을 선택합니다. 여기에 이미지 설명 입력

여기에 이미지 설명 입력


2

AS 1.1.0에서 하드웨어 키보드를 선택 해제하는 두 곳이 있습니다. 이것으로는 충분하지 않습니다.

여기에 이미지 설명 입력

이 작업을 수행해야합니다 (클릭 Tools | Android | AVD Manager한 다음 새 AVD를 만들거나 이전 AVD를 편집 한 다음 클릭 Show Advanced Settings, 아래로 스크롤하여 지움 Enable keyboard input).

여기에 이미지 설명 입력


스크롤 표시기가 일반적으로 사라지고 스크롤을 시작하면 표시되기 때문에이 솔루션을 찾는 데 시간을 보냈습니다. 보기를 스크롤 할 수있는 경우 그 가능성을 시각적으로 표시하는 것이 좋습니다.
GregM

Android Studio에서 나를 위해 작동하지 않습니다. "키보드 입력 활성화"를 선택 취소했지만 에뮬레이터에 여전히 소프트웨어 키보드가 표시되지 않습니다.
Evgenii

"선택 취소"를 하나만 언급하셨습니다. 다른 하나는 그림과 같이 "하드웨어 키보드 있음"이며 이미 지 웠을 것입니다. 다른 가상 장치를 사용해 보시겠습니까? AS 에뮬레이터가 용인하기가 꽤 어렵다는 것을 알았습니다. 로딩 속도가 느립니다. 이런 단점이 있습니다 .... 행운을 빕니다.
DSlomer64

2

Android Studio 2 이상 에뮬레이터에 화면 상 소프트 키보드를 사용 설정하는 방법은 에뮬레이터의 API 수준에 따라 다릅니다. API 15로 시작하는 다양한 방법을 테스트하고 아래 단계를 기록했습니다.

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

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

  1. Android Virtual Device Manager (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 단계를 수행하여 hardqare 키보드를 활성화할지 여부에 따라 "키보드 입력 활성화"옵션을 선택하거나 선택 취소합니다.
  2. 가상 장치에서 설정을 시작한 다음 언어 및 입력 / 물리적 키보드를 선택합니다.
  3. "가상 키보드 표시"사용

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

[E] API 26

언어 및 입력 / 물리적 키보드에 도달하기 전에 장치 설정에서 추가 "시스템"메뉴 수준을 탐색해야한다는 점을 제외하면 [D] API 24 및 25와 정확히 동일합니다.


1

에뮬레이터가 소프트 키보드를 지원하지 않을 수 있습니다.

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

이미 사실이면 이 답변확인하십시오.


1

표시하려면 :

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);

그냥 이거 먹어봐 ....


그것은 불행하게도, 도움이되지 않았다
안드레이 Chernukha에게

InputMethodManager imm = (InputMethodManager) getSystemService (Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput (InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY) ...이 시도
FarhaSameer786

@Andrey Chernukha - 나는 ..... 당신의 에뮬레이터 softkeyboard 또는 에뮬레이터가 제대로 작동하지 않는 하드웨어를 지원하지 않습니다 생각
FarhaSameer786
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.