Turkcell | Geleceği Yazanlar

Soru & Cevap

Custom ListView den EditText ile isim arama

20.03.2016 - 19:14

Merhaba arkadaşlar. Ben bir uygulama geliştiriyorum. Uygulamamda ListView ile Telefon Rehberindeki kişiler resimdeki gibi çekiliyor. Sorum şu: Ben edittext ile örneğin a harfini yazdığım zaman altta sadece a harfi ile başlayan isimlerin listelenmesini istiyorum. Çok kaynak buldum  ama hiçbiri işe yaramadı.. Teşekkür ederim..

2061 Görüntülenme

1 Cevap

Emre Celebi
20.03.2016 - 20:10

Bu yalnız a ile başlayan değilde içinde a geçenleri getiriyor yalnız a ile başlayanıda bu kodu editleyerek kolayca halledersin.Bu kodda contatins() ile kontrol yapıyorum sen startsWith() kullanman lazım sanırım
Bunun için telefon rehberini tuttuğun List ile ayrıca bir tane boş List oluştur
Birde pojo classın olsun mesela ; 
public class TelefonRehberi {
private int id;
private String kisiAdi
private String kisiTelNo;
.
.

setter-getter metodları
}

Daha Sonra 

TelefonRehberi telefonRehberi = new TelefonRehberi();
tel.setKisiAdi("a");
tel.setKisiTelNo("123");
List<TelefonRehberi> listTelefonRehberiDefault="BUNUN İÇİNE DOLDUR";
listTelefonRehberiDefault.add(telefonRehberi);
List<TelefonRehberi> listTelefonRehberiSearch = new ArrayList(); // BU BOŞ KALACAK SEARCH YAPARKEN
                                                                                               // DOLACAK
listview.setAdapter(new MyAdapter(context, R.layout.list_default_item, listTelefonRehberiDefault));

 private int textLength = 0;

editText.addTextChangedListener(new TextWatcher() {
            public void afterTextChanged(Editable s) {
            }

            public void beforeTextChanged(CharSequence s,
                                          int start, int count, int after) {
            }

            public void onTextChanged(CharSequence s, int start, int before, int 
               textLength = editText.getText().length();
                listTelefonRehberiSearch.clear();
                for (int i = 0; i < listHavaalaniDefault.size(); i++) {
                    if (textLength <= listTelefonRehberiDefault.get(i).getKisiAdi().length()) {

                        if (listTelefonRehberiDefault.get(i).getKisiAdi().toLowerCase().contains(editText.getText().toString().toLowerCase().trim())) {
                            listTelefonRehberiSearch.add(listTelefonRehberiDefault.get(i));
                        }
                    }
                }
                listview.setAdapter(new MyAdapter(context, R.layout.list_default_item, listTelefonRehberiSearch));
            }
        });

Kodu anlarsan rahatça halledersin.

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Fatih Demir
20.03.2016 - 20:16
Anladım usta teşekkür ederim. Deneyeceğim...

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.