我正在使用AutoCompleteTextView,用戶可以看到機會。 所以,當我點擊兩個字符,例如「巴」我會看到「巴哈馬」,「巴林」,「阿塞拜疆」等 - 這個工程!使用AutoCompleteTextView,但隱藏鍵盤上的字符
但是,如果我沒有以字母「z」開頭的國家,我會隱藏鍵盤上的z。如果我點擊兩個字符「ba」,我只會在鍵盤上看到「h」。 我該怎麼做?如果我仍然想點擊「ba」並獲得「巴哈馬」和「阿塞拜疆」,我怎麼能意識到這一點?
謝謝大家!
我正在使用AutoCompleteTextView,用戶可以看到機會。 所以,當我點擊兩個字符,例如「巴」我會看到「巴哈馬」,「巴林」,「阿塞拜疆」等 - 這個工程!使用AutoCompleteTextView,但隱藏鍵盤上的字符
但是,如果我沒有以字母「z」開頭的國家,我會隱藏鍵盤上的z。如果我點擊兩個字符「ba」,我只會在鍵盤上看到「h」。 我該怎麼做?如果我仍然想點擊「ba」並獲得「巴哈馬」和「阿塞拜疆」,我怎麼能意識到這一點?
謝謝大家!
爲卡塔指出的那樣,你將無法隱藏在softkeyboard鍵,除非你寫你自己的鍵盤 - 你有幾個其他的選擇的:
,你可以把一個在編輯文本的文本守望者,如果他們鍵入他們的類型是不以任何的話,你可以刪除它
你可以使用setKeyListener http://developer.android.com/reference/android/widget/TextView.html#setKeyListener%28android.text.method.KeyListener%29並驗證其條目。
這兩個都不會隱藏鍵盤上的鍵,但可以使用它們來防止用戶鍵入無效鍵。
至於你提到的用戶輸入匹配的字符串中的第二個問題,這不是自動完成的代碼:
相關代碼的形式android源碼:
for (int i = 0; i < count; i++) {
final T value = values.get(i);
final String valueText = value.toString().toLowerCase();
// First match against the whole, non-splitted value
if (valueText.startsWith(prefixString)) {
newValues.add(value);
} else {
final String[] words = valueText.split(" ");
final int wordCount = words.length;
for (int k = 0; k < wordCount; k++) {
if (words[k].startsWith(prefixString)) {
newValues.add(value);
break;
}
}
}
}
你可以看到它只會匹配項目中任何單個單詞的第一個字符。因此,要實現第二個目標,您必須編寫自己的適配器來實現可過濾。
這裏是一個可能讓你開始一個教程:http://thinkandroid.wordpress.com/2010/02/08/writing-your-own-autocompletetextview/
我認爲你可以做到這一點只有當你使自己的軟鍵盤,使這種方法吧... – Cata 2011-05-27 09:29:08