0

ユーザーが機会を見ることができる AutoCompleteTextView を使用しています。たとえば「ba」という 2 つの文字をタップすると、「バハマ」、「バーレーン」、「アゼルバイジャン」などが表示されます。これでうまくいきます。

ただし、文字「z」で始まる国がない場合は、キーボードで z を非表示にします。「ba」の 2 文字をタップすると、キーボードに「h」しか表示されません。どうやってやるの?それでも「ba」をタップしたいのに、「bahamas」と「azebaijan」が表示される場合、どうすればそれを実現できますか?

みんな、ありがとう!

4

1 に答える 1

0

Cata が指摘したように、独自のキーボードを作成しない限り、ソフトキーボードのキーを非表示にすることはできません。ただし、他にもいくつかのオプションがあります。

これらはどちらもキーボードからキーを隠しませんが、ユーザーが無効なキーを入力するのを防ぐために使用できます。

ユーザー入力を文字列の途中に一致させることに関する2番目の質問については、これはオートコンプリートのコードにはありません:

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

アイテム内の個々の単語の最初の文字のみに一致することがわかります。したがって、2 番目の目標を達成するには、filterable を実装する独自のアダプターを作成する必要があります。

これを始めるためのチュートリアルがあります: http://thinkandroid.wordpress.com/2010/02/08/writing-your-own-autocompletetextview/

于 2011-05-27T09:58:11.247 に答える