ヘルプ - 関連するすべてのスレッドを読んでください。私の onPostExecute は呼び出されていません。
AsyncTask を使用して別のスレッドでリスト ビルダーを実行することにより、AutoCompleteTextView のオートコンプリート リストを動的に作成しようとしています。
これが基本的なコードです....何かアイデアはありますか?
_artist = (AutoCompleteTextView)findViewById(R.id.artist);
_artist.addTextChangedListener(new TextWatcher()
{
public void afterTextChanged(Editable s)
{
_artist.setAdapter(null);
_fetcher = new AutoCompleteFetcher(_artist);
_fetcher.execute();
}
}
public class AutoCompleteFetcher extends AsyncTask<Void, Void, Void>
{
private AutoCompleteTextView _textView;
private String[] _matches;
public AutoCompleteFetcher(AutoCompleteTextView v)
{
super();
_textView = v;
}
protected Void doInBackground(Void... v)
{
_matches = _getMatches();
return null;
}
private String[] _getMatches()
{
// fill the list....... code removed here
// returns populated String[]
}
@Override
protected void onPostExecute(Void result)
{
ArrayAdapter<String> adapter =
new ArrayAdapter<String>(_textView.getContext(),
android.R.layout.simple_list_item_1,_matches);
_textView.setAdapter(adapter);
}
}