FAQ : 프로그래밍적으로 키보드 숨김/감춤/보기. 액티비티 시작시 키보드 숨김/감춤/보기, EditText선택시 키보드 안뜨게하기 등 소프트 키보드 동작 관련 질문에 대한 답변

1. 키보드 감추기
EditText editText = (EditText) findViewById(R.id.myEdit);
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);

2. 키보드 보여주기
EditText editText = (EditText) findViewById(R.id.myEdit);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_FORCED);

위 코드로 안보이는 경우 아래코드도 시도해보세요
- imm.showSoftInputFromInputMethod (editText .getApplicationWindowToken(),InputMethodManager.SHOW_FORCED);

onCreate등에서 제대로 동작하지 않는다면 
Handler로 post를 해서 위 코드를 실행시켜보세요.

3. 키보드 토글 - 위 두가지 방법으로 안되는 경우 다음과 같은 코드로 동작하는 경우가 있습니다.
imm.toggleSoftInputFromWindow(editText.getApplicationWindowToken(),  InputMethodManager.SHOW_FORCED, 0); 

4. 액티비티 시작시 자동으로 키보드 보여주기
AndroidManifest.xml의 activity 태그의 속성에 android:windowSoftInputMode="stateVisible" 혹은 "stateAlwaysVisible"삽입

5. 액티비티 시작시 자동으로 키보드 보여주지 않기
AndroidManifest.xml의 activity 태그의 속성에 android:windowSoftInputMode="stateHidden" 혹은 "stateAlwaysHidden" 삽입

6. 에디트 텍스트 선택해도 키보드 안뜨게 하기
EditText xml 속성에서 inputType 을 0으로 주면 안뜹니다.

반복되는 질문을 정리하는 FAQ 작업 진행중입니다. 키보드 동작 관련해서 정리할 글입니다. 
잘못된 부분이나 추가할 부분있으면 알려주세요.

출처 : http://www.androidpub.com/1104990
 

공개 API를 작업하기위해서는 아래와 같은 작업을 해야만 합니다.
아래의 작업은 tat를 공개 Api로 작업 하는 내용입니다.

모듈별로 작업하기 위해서는 make update-api TARGET_PRODUCT=[모델명] 을 입력하시면 됩니다.

(1)  i add it to frameworks/base/tat. 


(2) modify build/core/pathmap.mk 


like this: 
FRAMEWORKS_BASE_SUBDIRS := \ 
        $(addsuffix /java, \ 
            core \ 
            graphics \ 
            im \ 
            location \ 
            media \ 
            opengl \ 
            sax \ 
            telephony \ 
            wifi \ 
            tat \ 
         ) 


(3) make and make sdk. (successfully). 

Unhanlded fault
커널 로그를 보면 보통 위의  로그를 찍어주면서 시작하게 됩니다. 
보통 커널 패닉 또는 다운로드 모드로 진입하게 됩니다.
아직 커널 관련해서 잘 몰라서 왜 위의 에러가 발생하는지에 대해서는 잘 모릅니다.
아래의 내용은 다른 웹사이트에서 발췌한 내용입니다.
참고하시길 바랍니다.

추후에 커널에 대해서 알게된다면 정리하도록 하겠습니다.
 
I found this error message when access memory io 

"Unhandled fault: external abort on non-linefetch"

1. I suspect memory io address then I access another memory io address but it was OK
2. I thought my driver has a some interface problem, because kernel has some changes for driver interface as like ioctl - but it's not
3. then I thought ioremap and request_mem_region usage are changing - but it's not
4. I tried this memory address at machine start but I got same message 
5. Finally I suspected memory IO Pheriperal device power status then I checked power manegement register 

I got a result 
when memory io device is not power up this message shows 

It took a few hours, finally I got new one today.

출처 : http://dokyunblog.blogspot.com/2011/04/unhandled-fault-external-abort-on-non.html 

+ Recent posts