2013-04-30 19 views
5

Kendinden üretilebilen giriş alanı içeren bir Android uygulaması var (TextView veya EditText öğeleri), bu yüzden klavyeyi gösterme/gizleme, kullanıcı girdisini işlemek ve girilen simgeleri göstermem gerekiyor kendimÖngörülü metni program aracılığıyla devre dışı bırakma (EditText olmadan)

Standart görünüm için tahmini metin modunu devre dışı bırakmam gerekir. Ne yazık ki Android View sınıfında (android.view.View) hiçbir işlevi yoktur setInputType.

Muhtemel bir çözüm var. Verilen görüntünün InputConnection'unu alın ve özelliklerini değiştirin. Ancak, InputConnection güncel örneğinin nasıl ayarlanacağını ve ayarlanamadığını bulamıyorum, maalesef onCreateInputConnection işlevi de çağrılmıyor.

Standart görünüm için akıllı metin modunu devre dışı bırakacak herhangi bir yöntem var mı?

cevap

5

Kullanmakta olduğum bir şey, özellikle "textNoSuggestions" etiketinin sizin için çalışacağını düşünüyorum.

<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

Teşekkür ederim Mike. Ancak, uygulama ne 'TextView' ne de EditView' öğelerini içermez. –

+0

Neyi başarmaya çalıştığınızdan emin değilim. Düzenlenebilir bir alana dokunduğunuzda veya odakta olduğunuzda klavye görünecektir. Odağı olan giriş alanı olmadan manuel olarak gösteriyor musunuz? Bazı kodların var mı? – Mike

+0

Evet. Kendi oluşturduğum giriş alanını kullanıyorum, bu yüzden klavyeyi göstermeli ve kullanıcı girişini kendi başıma kullanmalıyım. –

2

Maalesef cevabınız daha özlü bir şekilde! Buna benzer

bir şey:

1) klavye, gösterir: görünüşüdür uzanır (myCustomView içinde

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

2)), ekleyin:

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; 
} 

Bu genel özüdür ne yapılmalı. Varsayılan olarak durumu koruyacak şekilde ayarlanan OR yerine outAttrs.inputType isteyebilir veya önce onCreateInputConnection üst öğesini arayabilir ve sonra outAttrs.inputType öğenizi ayarlayabilirsiniz (bunun işe yarayıp yaramayacağından emin olamayabilirsiniz). Bu, umarız size çözümünüze oldukça yakındır.

+0

kodunuzu nasıl biçimlendireceğinizi öğrenin, lütfen. –

İlgili konular