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