Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 2 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Android filter nad vlastným adapterom

Registrovaný: 05.04.11
Príspevky: 1693
Témy: 50
Bydlisko: Žilina, Pop...
Príspevok NapísalOffline : 19.03.2014 19:59

Dneska už asi 2 hodiny sa s týmto trápim a neviem si rady, tak sa skúsim opýtať sem. Neviem koľko je tu android vývojárov, ale možno budem mať šťastie.

V aktivite mám ListView, ktorému nastavujem vlastný adapter, nad ktorým by som chcel robiť filtrovanie :

Kód:
public class ComentsAdapter extends BaseAdapter implements Filterable {

   private List<Coment> originalData = null;
   private List<Coment> filteredData = null;
   private LayoutInflater mInflater;
   private ItemFilter mFilter = new ItemFilter();

   /**
    * @param context
    * @param resource
    * @param objects
    */
   public ComentsAdapter(Context context, List<Coment> data) {
      this.filteredData = data;
      this.originalData = data;
      mInflater = LayoutInflater.from(context);
   }
   


   @Override
   public View getView(int position, View view, ViewGroup parent) {
      View updateView;
      ViewHolder viewHolder;
      if (view == null) {

         updateView = mInflater.inflate(R.layout.coments_item, null);

         viewHolder = new ViewHolder();

         // Používateľské meno človeka, ktorý napísal komentár
         viewHolder.comentsUsernameView = (TextView) updateView
               .findViewById(R.id.coments_item_login);

         // Dátum a čas vytvorenia komentáru
         viewHolder.comentsDateView = (TextView) updateView
               .findViewById(R.id.coments_item_date);

         // Textový obsah komentáru
         viewHolder.comentsValueView = (TextView) updateView
               .findViewById(R.id.coments_item_value);

         updateView.setTag(viewHolder);
      } else {
         updateView = view;
         viewHolder = (ViewHolder) updateView.getTag();
      }

      //Coment coment = getItem(position);
      viewHolder.comentsUsernameView.setText(filteredData.get(position)
            .getUsername().toString());
      viewHolder.comentsDateView
            .setText(filteredData.get(position).getDate().toString());
      viewHolder.comentsValueView.setText(filteredData.get(position)
            .getValue().toString());

      return updateView;
   }

   @Override
   public int getCount() {
      return filteredData.size();
   }

   @Override
   public Coment getItem(int position) {
      return filteredData.get(position);
   }

   @Override
   public long getItemId(int position) {
      return position;
   }

   public Filter getFilter() {
      return mFilter;
   }
 
   private class ItemFilter extends Filter {
      @Override
      protected FilterResults performFiltering(CharSequence constraint) {
         
         String filterString = constraint.toString().toLowerCase();
         
         FilterResults results = new FilterResults();
         
         final List<Coment> list = originalData;
 
         int count = list.size();
         final ArrayList<String> nlist = new ArrayList<String>(count);
 
         String filterableString ;
         
         for (int i = 0; i < count; i++) {
            filterableString = list.get(i).getValue();
            if (filterableString.toLowerCase().contains(filterString)) {
               nlist.add(filterableString);
            }
         }
         
         results.values = nlist;
         results.count = nlist.size();
 
         return results;
      }
 
      @SuppressWarnings("unchecked")
      @Override
      protected void publishResults(CharSequence constraint, FilterResults results) {
         filteredData = (ArrayList<Coment>) results.values;
         notifyDataSetChanged();
      }
 
   };
   

   private static class ViewHolder {
      public TextView comentsUsernameView;
      public TextView comentsDateView;
      public TextView comentsValueView;

   }


   public void clear() {
      filteredData.clear();
      notifyDataSetChanged();
      
   }



   public void add(Coment com) {
      filteredData.add(com);
      notifyDataSetChanged();
      
   }

}


Trieda Coment je tvorená 3ma String atribúty Value, Date a Username. Všetko funguje fajn, až na to filtrovanie, akonáhle v aktivite zadám do searchu jedno písmenko končím errorom :

Kód:
03-19 19:57:48.416: E/AndroidRuntime(10956): java.lang.ClassCastException: java.lang.String cannot be cast to com.kulturnepodujatia.libs.Coment
03-19 19:57:48.416: E/AndroidRuntime(10956):    at com.kulturnepodujatia.adapters.ComentsAdapter.getView(ComentsAdapter.java:74)


na požiadanie dohodím aj iné kódy.







_________________
rMBP 13 2015
iPhone 7
Offline

Užívateľ
Užívateľ
Android filter nad vlastným adapterom

Registrovaný: 05.04.11
Príspevky: 1693
Témy: 50
Bydlisko: Žilina, Pop...
Príspevok Napísal autor témyOffline : 19.03.2014 20:04

Nah lock, musím to napísať na nejaké fórum aby som si všimol somarinu ... vyriešené.







_________________
rMBP 13 2015
iPhone 7
Odpovedať na tému [ Príspevkov: 2 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Problem s vlastnym forom

v Redakčné systémy

7

1166

28.01.2007 12:49

Leachim Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Subwoofer z vlastnym zosilovacom

v Elektronika

1

887

28.10.2008 2:51

Spirit Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. phpMyAdmin pod vlastnym rozhranim

v Databázy

6

698

28.11.2007 10:43

stewee Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Domace kino s vlastnym subom

v Zvuk

21

950

02.11.2011 15:29

haffen Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. TWS s vlastnym ovladanim hlasitosti

v Ostatné

1

325

01.10.2021 8:59

M0f0 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Mobily budeme nabíjať vlastným telom

v Novinky

1

450

05.03.2012 9:08

tairikuokami Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Musle s perfektnym vlastnym odhlucnenim (okolo 30e)

v Ostatné

18

1083

28.12.2011 19:35

Qpkqkma Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Blogovanie v Číne iba pod vlastným menom

v Novinky

3

1041

24.10.2006 18:44

marzo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Filter

v Sieťové a internetové programy

7

336

31.10.2012 23:21

Janna Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Filter

v Video programy

1

658

15.10.2009 16:41

MAPO Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Prachový filter

v Ostatné

6

460

08.09.2013 18:42

shaggy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. mysql filter

v Databázy

2

861

30.05.2008 15:37

javo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Prachový filter

v Chladiče a všetky druhy chladenia

6

1437

12.12.2015 11:04

dixi Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. frekvencny filter...

v Elektronika

1

854

20.02.2008 20:19

sento Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. prach filter

v PC skrinky, zdroje a všetky druhy chladenia

2

357

30.10.2013 12:34

6BONGO6 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. prachovy filter

v PC skrinky, zdroje a všetky druhy chladenia

3

438

25.11.2014 22:24

KocuR Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra