| | |
| Stránka: 1 z 1
| [ Príspevkov: 2 ] | |
Autor | Správa |
---|
Registrovaný: 05.04.11 Príspevky: 1693 Témy: 50 Bydlisko: Žilina, Pop... | Napísal XOLOO: 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
|
|
Registrovaný: 05.04.11 Príspevky: 1693 Témy: 50 Bydlisko: Žilina, Pop... | Napísal autor témy XOLOO: 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
|
|
| Stránka: 1 z 1
| [ Príspevkov: 2 ] | |
| 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
|
|