2016-04-11 13 views
0

Ich habe eine autocompletetextview in meiner Haupttätigkeit, die ich umgesetzt haben, wie folgt:Autocompletetextview kundenspezifische Adapter nicht funktioniert

String[] values = new String[]{"Linux", "Ubuntu", "iPhone", "Android", "iOS"}; 
autoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.autocompleteView); 
autoCompleteTextView.addTextChangedListener(this); 
autoCompleteTextView.setAdapter(new AutoCompleteAdapter(this, values)); 

Ich habe auch die Methoden für die TextWatcher in der gleichen Klasse implementiert.

Meine adapter Klasse sieht wie folgt aus:

public class AutoCompleteAdapter extends ArrayAdapter<String> { 

private final Context context; 
private final String[] values; 

public AutoCompleteAdapter(Context context, String[] values) { 
    super(context, -1, values); 
    this.context = context; 
    this.values = values; 
} 

@Override 
public View getView(int pos, View convertView, ViewGroup parent){ 
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View rowView = inflater.inflate(R.layout.autocomplete_item, parent, false); 
    TextView textView1 = (TextView) rowView.findViewById(R.id.autocomplete_symbol); 
    TextView textView2 = (TextView) rowView.findViewById(R.id.autocomplete_company_name); 
    textView1.setText(values[pos]); 
    textView2.setText(values[pos]); 
    return rowView; 
} 
} 

Und hier ist mein xml Code für die Ansicht:

<AutoCompleteTextView 
     android:id="@+id/autocompleteView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/activity_heading_1" 
     android:completionThreshold="1" 
     android:hint="@string/autocomplete_hint" /> 

Da meine Werte sind Linux, Ubuntu, iPhone, Android and iOS, ich meine die automatische Vervollständigung erwartet so zu arbeiten, dass, wenn Ich gebe a/A ein, es zeigt Android. Stattdessen zeigt es immer das Element an Position 0, d. H. Es zeigt immer Linux. Wenn ich i/I tippe, sollte es mir iPhone and iOS geben, aber stattdessen gibt es mir Linux, Ubuntu. Jede Hilfe wird geschätzt. Vielen Dank!

UPDATE: wenn ich aus der Dropdown auf dem Element klicken, wird der korrekte Wert in dem dh view ersetzt, wenn i-Typ a/A obwohl linux in der Dropdown-Liste angezeigt wird, wenn ich darauf klicken, Android im autocomplete angezeigt wird Aussicht.

Antwort

1

Sie benötigen individuelle implementieren Filter für Ihre ArrayAdapter

prüfen diese tutorial.

Verwandte Themen