
주석 달은 부분에서 문제가 생겼는데 도대체 어디가 문제인지 알 수가 없더군요..
동영상 검색 창에 일치하는 게 없는 영상 제목(예: a,b,c 영상만 있는데 d를 검
색할 경우)을 검색할 때 앱이 중지되버립니다 왜 그런거죠? 도와주세요!
public void searchMethod() {
final EditText editSearch = (EditText) findViewById(R.id.searchView);
assert editSearch != null;
editSearch.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) { }
@Override
public void afterTextChanged(Editable s) {
adapter.filter(editSearch.getText().toString());
}
});
}
//Adapter의 일부
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.video_item, null);
holder.icon = (ImageView) convertView.findViewById(R.id.iconView);
holder.title = (TextView) convertView.findViewById(R.id.titleText);
holder.route = (TextView) convertView.findViewById(R.id.routeText);
holder.duration = (TextView) convertView.findViewById(R.id.durationText);
holder.deleteButton = (ImageButton) convertView.findViewById(R.id.deleteButton);
holder.memoButton = (ImageButton) convertView.findViewById(R.id.memoButton);
holder.modifyButton = (ImageButton) convertView.findViewById(R.id.modifyButton);
ContentResolver crThumb = getContentResolver();
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 1;
if(videoItemList.get(position) != null) { //문제가 되는 부분
holder.bitmap = MediaStore.Video.Thumbnails.getThumbnail(crThumb,
videoItemList.get(position).getId(),
MediaStore.Video.Thumbnails.MICRO_KIND, options);
holder.icon.setImageBitmap(holder.bitmap);
}
convertView.setTag(holder);
} else {
holder = (ViewHolder)convertView.getTag();
}
if (videoItemList.get(position) != null) {
.......(생략)
}
}
public void filter(String charText) { //호출한 필터
videoItemList.clear();
if(charText.length() == 0) {
videoItemList.addAll(arrayList);
} else {
for(VideoItem vi : vData) {
if(vi.getTitle().contains(charText)) {
videoItemList.add(vi);
}
}
}
notifyDataSetChanged();
}
< LogCat >
com.example.gddjr.myapplication E/AndroidRuntime: FATAL EXCEPTION: main