2012-07-30 23 views
5

Uygulamamda özel bir adaptörle AutoCompleteTextView kullanıyorum ve portre modunda mükemmel çalışıyor. Yatay modda, ancak yazılım klavyesi ekranın çoğunu alır ve metin görünümü, bağdaştırıcı tarafından sağlanan Görünümler yerine bindirme düğmelerini kullanır.OtomatikCompleteTextView, yatay modda ipuçları

Bunun sahne arkasında nasıl çalıştığına dair net bir belge bulamadım. Manzara modunda AutoCompleteTextView bağdaştırıcısının getView() yöntemini atlayarak, getItem() kullanarak bazı kirli işler yapar ve öğeleri ham dizeleri kullanarak işler.

o AutoCompleteTextView yılında accualy İKİ otomatik tamamlama ipuçları listelerini sunmak gibi görünüyor kötü şeyler yapmak için: (biz manzara genişleyen AutoCompleteTextView önlemek için flagNoExtractUi için imeOptions ayarlarsanız bu iyi görünür) aynı zamanda standart açılır VE bindirme düğmeleri .

BOTH durumlarında kendi Görünümlerimi sunmak istiyorum - ancak bunu yalnızca şu ana kadar açılan menü için yapmayı başardım. Yer paylaşımlı liste için özel görünümler sağlamak için herhangi bir değişiklik var mı?

Üzgünüm ama henüz düşük derecelendirme nedeniyle resim gönderemiyorum. Onlara ihtiyacı olursa onları gönderebilirim.

+0

Bu http://stackoverflow.com/questions/29046302/how-to-implement-autocompletetextview-with-listview –

cevap

0

Bu sorunu kendimle karşılaştım. Söylediğin gibi, manzarada TextView otomatik tamamlama ipuçlarını getItem() sonucuna dayandırıyor. Bu senaryoda metin dışında bir şey sağlamanın bir yolunu gerçekten görmüyorum, ancak manzarada gösterilecek doğru metni elde etmek için basit bir çözüm, ipucunu oluşturduğunuz nesne için toString()'u geçersiz kılmaktır.

Örneğin, senaryoda otomatik tamamlama ipuçlarımı doldurmak için İletişim nesnelerinin bir listesini kullanıyorum, bu yüzden "Kişi Adım" başlığındaki "İlk Ad Soyadı" nı göstermek yerine, "Kişi Adı" gibi bir nesne yerine "Temas Sonu" gösterilmesini sağlamak için toString() geçersiz kıldım. @ a2a6d4d3a5."

+0

ile bana yardımcı olabilir misiniz? Daha iyi bir çözüm var (http://stackoverflow.com/a/12934794/2469901), bu bir senaryodan farklı bir şekilde uygulanmasını isteyebileceği toString() yöntemlerinin yolunu değiştirmekten daha iyidir. – Skytile