sql >> Database >  >> RDS >> Mysql

AutoCompleteTextView met MySQL-gegevens

Je hebt gewoon een mechanisme nodig dat veranderingen in je invoervak ​​"kijkt" en de meest correcte manier om dit te bereiken wordt vermeld TextWatcher

Dus implementeer het en in een of andere methode die TextWatcher . biedt bijvoorbeeld onTextChanged() , wijs gegevens toe uit de invoerbox en stuur ze als parameter naar AsyncTask en in onPostExecute() methode maak een nieuwe adapter voor uw AutoCompleteTextView met gegevens opgehaald uit MySQL en wijs Adapter toe aan je widget en je hebt hem.

Pseudo-code:

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

en voer in je AsyncTask zoiets als dit uit:

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);
   }
}

Opmerking: In uw geval is het gemakkelijker om uw AsyncTask . te maken innerlijke klasse van je Activity klasse en je hebt directe toegang tot UI componenten zonder ze via de constructor door te geven.



  1. Postgresql CASE-instructie - kan ik de retourwaarde van de CASE in mijn SELECT gebruiken?

  2. Voer productanalyses uit met behulp van SQL Server Full-Text Search. Deel 1

  3. twee cursors in orakel vergelijken in plaats van MINUS . te gebruiken

  4. psycopg2 + pgbouncer. Asynchrone modus met gevent-fout