저는 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"
그러나 모두 헛된 것입니다. 그것은 결코 보여주지 않습니다. 내가 무엇을 놓치고 있습니까?
답변
에뮬레이터가 하드웨어 키보드 를 사용하도록 설정되어 있지 않은지 확인해야합니다 . Edit
AVD에서 선택한 에뮬레이터를 선택하면 됩니다. 그런 다음 설정을 선택 취소 하십시오 Hardware keyboard present
.
Genymotion 과 같은 다른 에뮬레이터를 사용해 볼 수도 있습니다 . 전체 하드웨어 가속 (멀티 코어 CPU 및 GPU)을 지원하며 Android 에뮬레이터 이미지보다 훨씬 빠르게 실행됩니다. Genymotion을 사용하는 경우 Android 내에서 하드웨어 키보드를 비활성화해야합니다 (자세한 내용은 아래 참조).
Genymotion에서 하드웨어 키보드를 비활성화하려면 : ->로
이동하여 에서 항목을 엽니 다 . 켜고 끌 수 있는 설정이 있습니다. 이 경우 에 당신은 당신의 실제 키보드를 사용하고있을 때 떨어져 표준 소프트 키보드 팝업해야 텍스트 필드에 포커스를 얻을 때마다.Settings
Language & input
Default
Keyboard & Input Methods
Hardware
Genymotion 설정 스크린 샷 :
답변
버전 2.1.1에서-가상 장치 설정을 클릭 한 다음 “입력에 가상 키보드 사용”확인란을 선택합니다.
답변
AS 1.1.0에서 하드웨어 키보드를 선택 해제하는 두 곳이 있습니다. 이것으로는 충분하지 않습니다.
이 작업을 수행해야합니다 (클릭 Tools | Android | AVD Manager
한 다음 새 AVD를 만들거나 이전 AVD를 편집 한 다음 클릭 Show Advanced Settings
, 아래로 스크롤하여 지움 Enable keyboard input
).
답변
Android Studio 2 이상 에뮬레이터에 화면 상 소프트 키보드를 사용 설정하는 방법은 에뮬레이터의 API 수준에 따라 다릅니다. API 15로 시작하는 다양한 방법을 테스트하고 아래 단계를 기록했습니다.
[A] API 15, 17, 19 및 21.
다음 단계는 온 스크린 소프트 키보드를 활성화하지만 하드웨어 컴퓨터 키보드를 사용하여 텍스트를 입력하고 AVD와 상호 작용하는 기능을 비활성화합니다.
- Android Virtual Device Manager (AVD)에서 작업 할 장치에 대한 편집 작업을 클릭합니다.
- 고급 설정 표시를 클릭하고 페이지 하단에서 “키보드”섹션까지 오른쪽으로 스크롤합니다.
- “키보드 입력 사용”옵션을 선택 취소합니다.
[B] API 22
하드웨어 키보드 설정으로 수행하는 작업에 관계없이 소프트 키보드가 표시됩니다. 소프트 키보드와 함께 하드웨어 키보드 지원을 활성화하려면
- AVD에서 작업하려는 장치에 대한 편집 작업을 클릭합니다.
- 고급 설정 표시를 클릭하고 페이지 하단에서 “키보드”섹션까지 오른쪽으로 스크롤합니다.
- “키보드 입력 사용”옵션을 선택하십시오.
[C] API 23
하드웨어 및 소프트 키보드를 사용하려면 …
- [B] 1 ~ 3 단계 수행
- 가상 장치에서 설정을 시작한 다음 언어 및 입력 / 현재 키보드를 선택합니다.
- 하드웨어 활성화-입력 방법 표시
하드웨어 키보드가 필요하지 않은 경우 AVD 고급 설정에서 “키보드 입력 활성화”옵션을 선택 취소합니다. 가상 장치의 설정을 변경할 필요가 없습니다.
[D] API 24 및 25
- 위의 [B] 1 ~ 3 단계를 수행하여 hardqare 키보드를 활성화할지 여부에 따라 “키보드 입력 활성화”옵션을 선택하거나 선택 취소합니다.
- 가상 장치에서 설정을 시작한 다음 언어 및 입력 / 물리적 키보드를 선택합니다.
- “가상 키보드 표시”사용
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);
그냥 이거 먹어봐 ….
답변
![](http://daplus.net/wp-content/uploads/2023/04/coupang_part-e1630022808943-2.png)