sql >> Databasteknik >  >> RDS >> Mysql

AutoCompleteTextView med MySQL-data

Du behöver helt enkelt någon mekanism som kommer att "bevaka" ändringar i din inmatningslåda och det mest korrekta sättet att uppnå det nämns TextWatcher

Så implementera det och i någon metod som tillhandahåller TextWatcher till exempel onTextChanged() , tilldela data från inmatningsrutan och skicka dem som parameter till AsyncTask och i onPostExecute() metod skapa ny adapter för din AutoCompleteTextView med data hämtade från MySQL och tilldela Adapter till din widget och du fick det.

Pseudokod:

public void onTextChanged(CharSequence s, int start, int before, int count) {
   if (s.length() > 1) {
      insertString = s.toString();
      new YourTask().execute(insertString);                  
   }
}

och i din AsyncTask, utför något så här:

protected List<String> doInBackground() {
   // fetchning data from MySQL
   return list;
}

public void onPostExecute(List<String> result) {
   if (!result.isEmpty()) {
       SomeAdapter adp = new SomeAdapter(context, layout, result);
       actv.setAdapter(adp);
   }
}

Obs! I ditt fall är det lättare att göra din AsyncTask inre klass av din Activity klass och du har direkt tillgång till UI komponenter utan att skicka dem via konstruktorn.



  1. mySQL välj postnummer inom x km/mile inom räckvidd av y

  2. Mysql väljer (n) rader för varje förekomst

  3. PHP Anslut till PostgreSQL med ssh2_tunnel

  4. Codeigniter/PHP kontrollera om kan ansluta till databasen