レイアウトにAutoCompleteTextViewがあります。ユーザーが最初の文字を入力した後、私はAsyncTaskでやっているAPI呼び出しをしたいと思います。私はaddTextChangedListenerを使用して、私はTextChangedでAPI呼び出しを行っています。しかし、問題は、ユーザーがAutoCompleteTextViewを変更するたびにAPIコールが実行されていることです。Android AutoCompleteTextView:TextChangeでAsyncTaskコールを1回だけ実行します。
しかし、私は最初の文字が入力された後であるAPI呼び出しが一度しか起こらないようにしたいと思います。これをどのように達成するのですか?
@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) {
}
});
}
ユーザーが文字を入力してから削除した後、別の文字を入力するとどうなりますか?ユーザーが文字を入力した後、最初の位置に戻って最初の文字の前に別の文字を挿入するとどうなりますか? –
@DougStevensonええと...これらのケースも考慮する必要があります。これらのシナリオをどのように達成できるか教えてください。 –