JavascriptProva

sabato 23 gennaio 2016

Ripasso delle modifiche del CursorAdapter per la AutoCompleteTextView.

Ora devo ricordare quelle due funzioni che servono per accoppiare un database a una AutoCompleteTextView.
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