암걸릴것 같습니다 도와주세요ㅜㅜㅜ
바로 아래 그림처럼 구현했습니다.'나'와'사이트주소'는 sqlite데이타베이스에 저장하고
list = (ListView) findViewById( R.id.file_list );
dbHelper = new FavoriteDBHelper(this);
arSrc = FavoriteDB.selectAllFile(dbHelper);
adapter=new ListAdapter( this, R.layout.favorite_list_view_layout , arSrc, null );
list.setAdapter( adapter );
이런식으로 뿌려줍니다
그리구 삭제는
SwipeDismissListViewTouchListener touchListener =
new SwipeDismissListViewTouchListener(list,
new SwipeDismissListViewTouchListener.DismissCallbacks() {
@Override
public boolean canDismiss(int position) {
return true;
}
@Override
public void onDismiss(ListView list, int[] reverseSortedPositions) {
for (int position : reverseSortedPositions) {
adapter.arSrc.remove(position);
FavoriteDB.deleteFile(position,dbHelper);
}
adapter.notifyDataSetChanged();
}
});
list.setOnTouchListener(touchListener);
list.setOnScrollListener(touchListener.makeScrollListener());
}
빨간색 줄 친것처럼 어댑터에서 지워주고 DB도 지워집니다 그러나 문제는

아래그림처럼 '하'라고 검색하고
@Override
public boolean onQueryTextChange(String newText) {
adapter.getFilter().filter(newText.toString());
return false;
}
private class ListFilter extends Filter {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults results = new FilterResults();
if (constraint == null || constraint.length() == 0) {
results.values = OriginarSrc;
results.count = OriginarSrc.size();
}
else {
ArrayList<FavoriteFile> nListDataList = new ArrayList<FavoriteFile>();
for (FavoriteFile p : arSrc) {
if (p.getFileName().toUpperCase().indexOf( constraint.toString().toUpperCase() ) >= 0 )
nListDataList.add(p);
}
results.values = nListDataList;
results.count = nListDataList.size();
}
return results;
}
@Override
protected void publishResults(CharSequence constraint,
FilterResults results) {
if (results.count == 0){
notifyDataSetInvalidated();
arSrc = FavoriteDB.selectAllFile(FavoriteActivity.dbHelper);
FavoriteActivity.list.setAdapter( FavoriteActivity.adapter );
}
else {
arSrc = (ArrayList<FavoriteFile>) results.values;
notifyDataSetChanged();
}
}
}
아래 그림처럼 나옵니다 그리고 저 '하'를 지우면 위의 1번그림의 '나'가 지워지고 '하'는 그대로 잇습니다
어떻게 생각하면 1번값을 지우니깐 당연히 첫번째 값이 사라지는게 당연하데 커서값으로도 잘 못찾겠고
리스트가 필터링되도 고유의 위치값을 알 수 없을까요?
