티스토리 뷰

 Android Softkeyboard를 컨트롤 하는 간단한 예제코드입니다. 버튼을 눌렀을 때 키보드를 불러오고, 내리는 간단한 코드와 InputKeyboard List를 불러오는 2가지 방법을 작성해보겠습니다.


작성한 예제 화면


키보드 Show/Hidden 예제

 InputMethodManager와 INPUT_METHOD_SERVICE를 이용하여 키보드를 컨트롤하는 예제입니다. 간단한 예제이니 사용한 코드는 아래와 같습니다. 이 예제는 EditText가 화면에 표시되어있어야 사용이 가능합니다.

InputMethodManager mInputManager = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
//Show Keyboard
mInputManager.showSoftInput(mEditText, 0);
//hidden Keyboard
mInputManager.hideSoftInputFromWindow(mEditText.getWindowToken(), 0);


InputKeyboard List 불러오기 예제

 InputKeyboard List 불러오기 예제는 현재 설치되어 있는 전체 키보드와 사용자가 사용하겠다고 지정한 키보드 목록 2가지를 불러오는 간단한 예제입니다.


설치 된 전체 키보드

 설치되어있는 전체 키보드의 목록을 가져오는 예제입니다. Intent를 통해서 휴대폰에 설치되어있는 목록을 불러와 출력하는 예제입니다. List를 통해서 받아오기에 아래와 같이 작성하였습니다.

PackageManager mPackageManager = getPackageManager();
Intent intent = new Intent(InputMethod.SERVICE_INTERFACE);
List<ResolveInfo> keyboardList = mPackageManager.queryIntentServices(intent, PackageManager.GET_SERVICES);
StringBuilder strBuilder = new StringBuilder();
for (ResolveInfo resolveinfo : keyboardList) {
	strBuilder.append(resolveinfo.loadLabel(getPackageManager()).toString() + "\n");
}
mInputMethodList.setText(strBuilder);


선택 된 키보드 불러오기 

 사용자가 선택한 키보드의 PackageName을 불러오는 예제입니다. InputManager의 getEnabledInputMethodList의 리스트를 불러오는 방법입니다.

InputMethodManager mInputManager = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
List<InputMethodInfo> list = new ArrayList<InputMethodInfo>();
list = mInputManager.getEnabledInputMethodList();
StringBuilder strBuilder = new StringBuilder();
for (InputMethodInfo info : list) {
	strBuilder.append(info.getPackageName() + " \n");
}
mInputMethodList2.setText(strBuilder);





댓글