Im faire un eBook comme application pour android et je veux filtrer le titre du livre, mais chaque fois que vous mettez un mot ou une phrase dans le edittext il va chercher le contenu des livres ... Quelqu'un peut-il m'aider avec ce ...Comment filtrer ListView à travers EditText
Répondre
Vous devez écrire textChangedlistener (ou) TextWatcher pour le edittext. Dans l'auditeur, vous devez écrire une logique de recherche. Voici APIdoc. Voici un exemple sur textwatcher.
J'ai déjà vu tout ce sujet mais ce n'est pas celui que je cherche .. si vous le savez pouvez-vous s'il vous plaît envoyez-moi un programme en cours donc je peux voir si c'est posible à faire .. merci – Mordiggian
essayer celui-ci, chaque fois que u entrer du texte dans edittext, la liste affichera résultat filtré comme je l'ai montré les choses dans les images
initial:
Filtrée :
c'est main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/etSearchbox"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<ListView
android:id="@+id/lvFirst"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
></ListView>
</LinearLayout>
c'est FilterListActivity.java
package com.filterlist;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
public class FilterListActivity extends Activity{
EditText etSearchbox;
ListView lvFirst;
ArrayAdapter<String> adapter1;
String[] data = {"mehul joisar","amit mishra","amitabh","Aamir khan","jesica","katrina"};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
etSearchbox=(EditText)findViewById(R.id.etSearchbox);
lvFirst=(ListView)findViewById(R.id.lvFirst);
lvFirst.setTextFilterEnabled(true);
adapter1 = new ArrayAdapter<String>(FilterListActivity.this, android.R.layout.simple_list_item_1, data);
lvFirst.setAdapter(adapter1);
etSearchbox.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
FilterListActivity.this.adapter1.getFilter().filter(arg0);
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
});
}
}
C'est génial! Mais je veux le faire un peu différemment. J'ai un adaptateur pour une liste des 10 meilleurs cties (c'est une liste statique). Maintenant, lorsque l'utilisateur tape dans la boîte edittext, je veux le filtre de l'autre liste de villes que j'ai. Comment puis-je y parvenir? – Namratha
ok.let me savoir où voulez-vous afficher le résultat filtré après filtrage de l'autre liste de villes? –
j'ai un exemple de travail, essayez ceci:
filterEditText = (EditText)findViewById(R.id.filter);
filterEditText.addTextChangedListener(filterTextWatcher);
TextWatcher filterTextWatcher = new TextWatcher() {
public void beforeTextChanged(CharSequence s, int start, int count,int after) {
}
public void onTextChanged(CharSequence s, int start, int before,int count) {
adapter.getFilter().filter(s);
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
};
L'adaptateur doit implements Filterable
@Override
public Filter getFilter() {
// Filter filter = null;
if(filter == null)
filter = new CheeseFilter();
return filter;
}
Et la classe filtre:
public class CheeseFilter extends Filter {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
// TODO Auto-generated method stub
constraint = constraint.toString().toLowerCase();
FilterResults newFilterResults = new FilterResults();
if (constraint != null && constraint.length() > 0) {
ArrayList<String> auxData = new ArrayList<String>();
for (int i = 0; i < data.size(); i++) {
if (data.get(i).toLowerCase().contains(constraint))
auxData.add(data.get(i));
}
newFilterResults.count = auxData.size();
newFilterResults.values = auxData;
} else {
newFilterResults.count = data.size();
newFilterResults.values = data;
}
return newFilterResults;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
ArrayList<String> resultData = new ArrayList<String>();
resultData = (ArrayList<String>) results.values;
EfficientAdapter adapter = new EfficientAdapter(context, resultData);
list.setAdapter(adapter);
// notifyDataSetChanged();
}
}
Vous pouvez consulter cet article pour plus d'informations:
- 1. Comment filtrer à travers une table?
- 2. Comment filtrer à travers cela correctement?
- 3. Comment filtrer un Listview quand j'ai tapé le mot dans un edittext + simplecursoradapter
- 4. Comment ajouter un EditText à un ListView
- 5. Android EditText dans un ListView
- 6. Comment filtrer ListView dans WPF?
- 7. EditText dans ListView - changement d'orientation de EditText
- 8. ListView avec EditText
- 9. Android EditText dans ListView?
- 10. EditText Dans ListView
- 11. Ajouter EditText dynamiquement à la ligne ListView
- 12. Ajouter EditText contenu à ListView dans Android
- 13. Android: EditText dans ListView
- 14. Copier le texte de EditText à ListView
- 15. Comment filtrer ListView en utilisant un EditText lorsque vous appuyez sur Entrée?
- 16. Filtrer un ListView - pas comment je pensais que cela fonctionnerait ../
- 17. Comment puis-je filtrer les données ListView lorsque je tape sur EditText dans android
- 18. Comment puis-je filtrer les données ListView en tapant sur EditText dans android
- 19. ListView avec EditText View Problème
- 20. Android EditText dans un ListView
- 21. Comment filtrer correctement un texte dans un ListView?
- 22. ListView avec bouton et EditText
- 23. EditText focus dans un ListView
- 24. Android ExpandView ListView avec EditText
- 25. Comment accéder à une boîte edittext sur une ligne listview
- 26. Comment puis-je filtrer JSON listview
- 27. comment filtrer plusieurs lignes dans listview dans android
- 28. EditText dans le comportement ListView
- 29. EditText montrant maintenant sous ListView
- 30. Filtrer les données dans listview
voir ce post http://stackoverflow.com/questions/1645209/ how-can-i-filter-listview-data-quand-taper-sur-edittext-en-android –
J'ai été bloqué sur cela pendant un moment, et j'ai trouvé certaines des réponses compliquées, donc finalement posté une réponse simplifiée ici: http://stackoverflow.com/questions/ 17720481/how-could-je-filtre-the-listview-using-baseadapter/36032382 # 36032382 –