Ho inizialmente posto il mio problema su stackoverflow dove non ho trovato aiuto.
Io ho questo adapter per la mia applicazione per le note che vengono salvate in un sql.
Ora sto integrando una barra di ricerca per filtrare le note,non so come fare.
il progetto lo potete trovare anche qua:
https://github.com/Heromine/Service-Notes
il mio adapter:
codice:
public classNotesAdapterextendsBaseAdapter{
privatestaticfinalString DATABASE_TABLE ="notes_schema-v%s.sql";
privateSQLiteDatabase mDb;
privateArrayList<NotesAdapter.NoteViewWrapper> notesData;
publicContext context;
publicstaticclassNoteViewWrapper{
privatefinalNote note;
privateboolean isSelected;
publicNoteViewWrapper(Note note){
this.note = note;
}
publicNote getNote(){
return note;
}
publicvoid setSelected(boolean isSelected){
this.isSelected = isSelected;
}
}
privatestaticfinalDateFormat DATETIME_FORMAT =DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM);
privatefinalList<NoteViewWrapper> data;
publicNotesAdapter(List<NoteViewWrapper> data){
this.data = data;
}
@Override
publicint getCount(){
return data.size();
}
@Override
publicNoteViewWrapper getItem(int position){
return data.get(position);
}
@Override
publiclong getItemId(int position){
return position;
}
@Override
publicView getView(int position,View convertView,ViewGroup parent){
ViewHolder holder;
if(convertView ==null){// inflar componente visual
convertView =LayoutInflater.from(parent.getContext()).inflate(R.layout.notes_row, parent,false);
holder =newViewHolder(convertView);
convertView.setTag(holder);
}else holder =(ViewHolder) convertView.getTag();
NoteViewWrapper noteViewWrapper = data.get(position);
holder.noteIdText.setText(String.valueOf(noteViewWrapper.note.getId()));
holder.noteTitleText.setText(noteViewWrapper.note.getTitle());
holder.noteContentText.setText(noteViewWrapper.note.getContent().length()>=80? noteViewWrapper.note.getContent().substring(0,80).concat("..."): noteViewWrapper.note.getContent());
holder.noteDateText.setText(DATETIME_FORMAT.format(noteViewWrapper.note.getUpdatedAt()));
if(noteViewWrapper.isSelected){
CardView cardsView =(CardView) convertView.findViewById(R.id.note_cardboard);
cardsView.setCardBackgroundColor(Color.parseColor("#cacaca"));
}else{
CardView cardsView =(CardView) convertView.findViewById(R.id.note_cardboard);
cardsView.setCardBackgroundColor(Color.WHITE);
}
return convertView;
}
Per favore aiutatemi! sono nel panico più totale anche dopo che su stackoverflow nessuno mi ha risposto...