2013-03-23 2 views
1

에뮬레이터에서 안드로이드 프로젝트를 테스트 할 때 키보드가 정상적으로 작동하는 것 같습니다. 그러나, 내 삼성 전화로 테스트 할 때 키보드가 제대로 작동하지 않습니다. 한 가지 문제는 첫 번째 디스플레이가 나타나면 키보드가 에뮬레이터에 없어도 자동으로 나타납니다. 둘째, 무언가를 입력하고 반품을하거나 키를 입력하면 키보드가 내 전화에서 사라지지 않습니다. 키보드를 없애기 위해 별도의 단계가 필요합니까? 셋째, 때로는 엔터 키를 치면 데이터를 제출하는 대신 커서가 새로운 행으로 이동합니다. 다시 말하지만,이 중 어느 것도 에뮬레이터의 문제는 아닙니다. 그렇다면 내 전화 장치에서 키보드가 올바르게 작동하도록하려면 어떻게해야합니까?안드로이드 키보드가 에뮬레이터와 비교하여 장치에서 다르게 작동합니다.

다음은 AutocompleteText보기로 데이터를 받고 제출하는 코드입니다.

autoComplete = (AutoCompleteTextView) findViewById(R.id.suggest); 
     autoComplete.addTextChangedListener(new TextWatcher(){ 

      public void afterTextChanged(Editable editable) { 
       // TODO Auto-generated method stub 

      } 

      public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
       // TODO Auto-generated method stub 

      } 

      public void onTextChanged(CharSequence s, int start, int before, int count) { 
       String newText = s.toString(); 
       int len = newText.length(); 
      //  Toast.makeText(getApplicationContext(), "Text changed count = " + String.valueOf(len), Toast.LENGTH_LONG).show(); 
       if(len > 1) 
        new getData().execute(newText); 
      } 

     }); 

가끔 Enter 키를 누르면 비동기 작업을 실행하는 대신 다른 행으로 이동합니다.

+1

다시 게시글에 질문을 올리려면 레이아웃 코드를 입력하십시오. – Kanth

답변

0

사용자의 요구에 맞게소프트 키보드을 강제로 열고 닫아야합니다.

열기소프트 키보드에 대한 :

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.showSoftInput(your_edit_text, InputMethodManager.SHOW_FORCED); 

닫기소프트 키보드에 대한 : 작업 올바른에 대한

InputMethodManager imm = (InputMethodManager)getSystemService(
         Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(your_edit_text.getWindowToken(), 0); 

완료 키는 다음 놓아야합니다 (입력) 재산권 s to 텍스트 편집.XML 파일.

android:singleLine="true" 
android:imeOptions="actionDone" 
+0

제안 사항이 있습니다. 이 코드를 추가하고 더 잘 작동하는지 확인하겠습니다. – Dave

관련 문제