Ich habe eine AutoCompleteTextView in meinem Layout. Nachdem der Benutzer das erste Zeichen eingegeben hat, möchte ich einen API-Aufruf durchführen, den ich in einer AsyncTask mache. Ich habe addTextChangedListener verwendet und mache den API-Aufruf für TextChanged. Das Problem besteht jedoch darin, dass der API-Aufruf jedes Mal ausgeführt wird, wenn der Benutzer Änderungen an AutoCompleteTextView vornimmt.Android AutoCompleteTextView: Führen Sie einen AsyncTask-Aufruf nur einmal auf TextChange
Aber ich möchte, dass der API-Aufruf nur einmal erfolgt, das heißt, nachdem das erste Zeichen eingegeben wurde. Wie erreiche ich das?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_places_search);
search_airport = (AutoCompleteTextView) findViewById(R.id.place_search);
autocompleteadapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, airports);
search_airport.setAdapter(autocompleteadapter);
search_airport.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
mAirport = new AsyncTaskAirport(search_airport.getEditableText().toString().substring(0, 1));
mAirport.execute((Void) null);
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
Was ist, wenn der Benutzer ein Zeichen eingibt, löscht es dann und gibt dann ein anderes Zeichen ein? Was passiert, wenn der Benutzer ein Zeichen eingibt, dann auf die erste Position zurückfährt und vor der ersten ein anderes Zeichen einfügt? –
@DougStevenson Yeah ... Ich muss diese Fälle auch berücksichtigen .. Kannst du mir sagen, wie ich all diese Szenarien erreichen kann? –