Vediamo un po'...
@Override public Cursor runQueryOnBackgroundThread(CharSequence constraint){ return null; }Cosa restituisce questo? Un cursor nel caso in cui la stringa digitata corrisponda alla parte iniziale di alcuni campi.
Come si riempiva? Non lo ricordo...
Ci provo.
Intanto mi creo l'AutoCompleteTextView.
E la istanzio da codice java.
Ecco alla fine ricostruite le due funzioni che ho appreso recentemente e che avevo in parte dimenticato:
@Override public Cursor runQueryOnBackgroundThread(CharSequence constraint){ if(constraint!="") return helper.query(constraint+""); return null; } @Override public CharSequence convertToString(Cursor c){ return c.getString(1); }con le quali la autoComplete funziona alla perfezione! L'adapter, aggiustato per la autoComplete, è:
class Adapter extends CursorAdapter{ public Adapter(Context context, Cursor c) { super(context, c); } @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { LayoutInflater inflater=(LayoutInflater)context.getSystemService(LAYOUT_INFLATER_SERVICE); TextView v=(TextView)inflater.inflate(android.R.layout.simple_dropdown_item_1line, null); return v; } @Override public void bindView(View view, Context context, Cursor cursor) { ((TextView)view).setText(cursor.getString(1)); } @Override public Cursor runQueryOnBackgroundThread(CharSequence constraint){ if(constraint!="") return helper.query(constraint+""); return null; } @Override public CharSequence convertToString(Cursor c){ return c.getString(1); } }
Nessun commento:
Posta un commento