0

J'utilise un TextView de saisie semi-automatique Je veux que lorsque l'utilisateur saisit les données dans le texte automatique, il soit automatiquement sauvegardé dans l'adaptateur utilisé par Autocomplete TextView et la prochaine fois que l'utilisateur recherche chose, l'utilisateur peut obtenir la même chose dans l'adaptateur Par exemple, je fais une application pour les cabines si le client doit entrer dans le point de départ suppose qu'il n'est pas présent dans l'adaptateur client écrit l'adresse mais le prochain client a essayé d'aller au même endroit entre l'emplacement il devrait être le drop down je ne sais pas comment faire cela Quelqu'un peut-il m'aider Merci d'avance!comment enregistrer des données en saisie semi-automatique textview

+0

Y at-il une aide? –

Répondre

0

Cela dépend de l'endroit où vous chargez vos données. Ce que vous devez faire fondamentalement est de définir un écouteur sur votre AutoCompleteTextView.

autocomplete.setOnItemClickListener(new AdapterView.OnItemClickListener() 
    { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
     { 
      //Todo update data in adapter 
     } 
    }); 

si vous obtenez des données à partir d'une base de données que vous utilisez probablement une SimpleCursorAdapter

SimpleCursorAdapter adapter = new SimpleCursorAdapter(activity, R.layout.name_id_list_item, 
                  cursor, new String[]{"name"}, 
                  new int[]{android.R.id.text1}); 

Ainsi, votre méthode sur clic écrirait les données dans la base de données. La partie délicate est que vous devez ensuite mettre à jour votre adaptateur afin que les nouvelles données soient remplies.

Vous pouvez le faire en recréant l'adaptateur et le mettre à votre AutoCompleteTextView.setAdapter()

1

Cet exemple montre comment enregistrer des données pour l'utilisateur en utilisant SharedPreferences.

Chargement des données saisies par l'utilisateur dans le passé:

public void loadSavedLines() { 
     SharedPreferences settings = getSharedPreferences("data", 0); 
     int size = settings.getInt("size", 0);  

     if (size != 0) {      
      String[] history = new String[size];   

     for (int i = 0; i &lt; size; i++) {  
      history[i] = settings.getString(String.valueOf(i+1), "empty"); 
     } 

     AutoCompleteTextView autoComplete= (AutoCompleteTextView) findViewById(R.id.autoComplete);  
     ArrayAdapter adapter = new ArrayAdapter(this, R.layout.simple_my_dropdown, history); 
     autoComplete.setAdapter(adapter); 
     autoComplete.setText(saved_uri); 
    } 

économie après vérification qui n'existent déjà:

public void checkThanSaveLine(String new_line, AutoCompleteTextView autoComplete) { 
    SharedPreferences settings = getSharedPreferences("data", 0); 
    int size = settings.getInt("size", 0); 
    String[] history = new String[size+1];  
    boolean repeat = false; 
    for (int i = 0; i < size; i++) {     
     history[i] = settings.getString(String.valueOf(i+1),"empty"); 
     if (history[i].equals(new_line.toString())) { 
      repeat = true; 
     } 
    } 
    if (repeat == false) { 
     SharedPreferences.Editor editor = settings.edit();  
     editor.putString(String.valueOf(size+1), new_line.toString()); 
     editor.putInt("size", size+1); 
     editor.commit(); 
     history[size] = new_line.toString();     
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,R.layout.simple_my_dropdown, history); 
     autoComplete.setAdapter(adapter); 
    } 
} 
Questions connexes