2010-04-30 6 views
32

Ich habe zwei AutoCompleTextViews und ich möchte zum nächsten wechseln, wenn der Benutzer "NEXT" drückt, und die virtuelle Tastatur verschwinden, wenn er trifft "DONE" bei der zweiten AutocompleTextView. Bisher haben die Buttons "NEXT"/"DONE" gar nichts gemacht .... Leider habe ich keine Ressourcen gefunden, die dieses Problem ansprechen.AutocompleteTextView: auf "NEXT" markieren nächste TextView, auf "DONE", Tastatur verschwinden

Irgendwelche Vorschläge? thx

EDIT: Ich möchte nur hinzufügen, dass dies gefragt wurde, wenn Android auf Version 2.3 oder so ähnlich war.

+0

Ich mache sowas ähnliches HIER !!! http://stackoverflow.com/questions/12854336/autocompletedtextview-backed-by-cursorloader – toobsco42

Antwort

86

Ich stieß auf dieses Problem und behob es, indem ich die imeOptions auf der AutocompleteTextView zu actionNext setzte.

Beispiel:

<AutoCompleteTextView 
    android:id="@+id/dialog_product_name" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:singleLine="true" 
    android:completionThreshold="1" 
    android:imeOptions="actionNext" 
    /> 
+7

Beachten Sie, dass 'android: imeOptions =" ​​actionNext "' den Benutzer zum nächsten Feld führt, das Text akzeptiert. Wenn Sie zu einem Button gehen wollen, verwenden Sie 'android: imeOptions =" ​​actionDone "' –

+0

Beachten Sie auch die SingleLine = true. In meinem Fall war das das Problem. Vielen Dank! –

3

fand ich diese Lösung für das „NEXT“ Problem: in etwas, das Ihrer Ansicht Quellcode schreiben wie diese

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event) { 
if (keyCode == KeyEvent.KEYCODE_ENTER) { 
    if (firstAutoComplete.hasFocus()) { 
    // sends focus to another field (user pressed "Next") 
    otherText.requestFocus(); 
    return true; 
    } 
    else if (secondAutoComplete.hasFocus()) { 
      // sends focus to another field (user pressed "Next") 
    anotherText.requestFocus(); 
    return true; 
    } 
} 
return false; 
} 

Es scheint eine altes Android http://code.google.com/p/android/issues/detail?id=4208 zu sein. Hier fand ich meine Lösung: http://groups.google.com/group/android-developers/browse_thread/thread/e53e40bfe255ecaf.

+0

Während dies funktioniert, wenn Sie Ihre eigene Ansicht implementieren, können Sie auch einen OnKeyListener über setOnKeyListener hinzufügen und mehr oder weniger den gleichen Code verwenden (override onKey (...)). Ich mag Cebru's Antwort mehr, da es den vordefinierten Weg verwendet - obwohl actionNext der Standard sein sollte, wenn eine nächste Schaltfläche sowieso angezeigt wird. – icyerasor

0

Fügen Sie einfach diese beiden Zeilen in AutoCompleteTextView xml-Code:

  android:completionThreshold="1" 
      android:imeOptions="actionNext" 
0

Vergessen Sie nicht input = "text" sonst hinzufügen Sie Enter-Taste haben werden statt next/done one:

<AutoCompleteTextView 
    android:id="@+id/suppliers" 
    android:layout_width="@dimen/summary_input_width" 
    android:layout_height="wrap_content" 
    android:hint="@string/current_supplier" 
    android:imeOptions="actionNext" 
    android:inputType="text" 
    android:lines="1" /> 
Verwandte Themen