2013-04-30 2 views
5

자체 입력 입력란 (아니 TextView 또는 EditText 요소)을 포함하는 Android 애플리케이션이 있으므로 키보드 표시/숨기기, 사용자 입력 처리 및 입력 된 기호 표시 필요 내 자신의.프로그래밍 방식으로 예상 검색어 텍스트 사용 안함

표준보기의 예측 텍스트 모드를 비활성화해야합니다. 안타깝게도 Android View 클래스 (android.view.View)에는 함수 setInputType이 없습니다.

가능한 해결책이 있습니다. 지정된보기의 InputConnection을 가져 와서 속성을 변경하십시오. 하지만 현재 InputConnection 인스턴스를 가져오고 설정하는 방법을 찾을 수 없습니다. 불행히도 onCreateInputConnection 함수도 호출되지 않습니다.

표준보기의 예측 텍스트 모드를 사용하지 않도록 설정하는 방법이 있습니까?

답변

5

내가 사용했던 것은 특히 "textNoSuggestions"태그가 아래에 있습니다. 나는 당신을 위해 일할 것이라고 생각합니다!

<EditText android:layout_marginLeft="10px" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_marginRight="10px" 
android:id="@+id/setupactivity_ftpsite" 
android:inputType="textNoSuggestions|textUri"> 
+0

감사합니다. 마이크. 그러나 응용 프로그램에는 TextView 및 EditView 요소가 포함되어 있지 않습니다. –

+0

나는 당신이 성취하려는 것을 확신하지 못합니다. 편집 가능한 필드를 누르거나 초점을 맞추면 키보드가 나타납니다. 포커스가있는 입력 필드가 없으면 수동으로 표시합니까? 코드가 있습니까? – Mike

+0

예. 자체 입력 필드를 사용하고 있으므로 키보드를 표시하고 사용자 입력을 직접 처리해야합니다. –

2

죄송합니다. 여기에 답이 더 간결합니다. 이와 유사한

뭔가 :

1) 키보드 : 뷰 확장 (myCustomView에

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.showSoftInput(myCustomView, InputMethodManager.SHOW_IMPLICIT); 

2)), 추가

InputConnection onCreateInputConnection (EditorInfo outAttrs) { 
    InputConnection ic = new EditableInputConnection(this); 
    outAttrs.inputType = TYPE_TEXT_FLAG_NO_SUGGESTIONS; 
    outAttrs.initialCapsMode = ic.getCursorCapsMode(outAttrs.inputType); //guess on this 
    return ic; 
} 

을이의 전체 요점입니다 무엇을해야만 하는가. 또는 outAttrs.inputType을 equals 대신에 사용하여 기본 상태를 유지하거나 부모 onCreateInputConnection을 먼저 호출 한 다음 outAttrs.inputType을 설정하면됩니다 (이 방법이 작동하는지 확실하지 않음). 이것은 당신이 당신의 솔루션에 꽤 가깝게 할 수있을 것입니다.

+0

코드를 올바르게 포맷하는 방법을 알아보십시오. –

관련 문제