마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 버그) listView에서 getView를 호출할 때 : filter 사용 시

0 추천
public void searchMethod() {

    final EditText editSearch = (EditText) findViewById(R.id.searchView);

    assert editSearch != null;
    editSearch.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {

            if(keyCode == event.KEYCODE_ENTER) {

                return true;
            }
            return false;
        }
    });

    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());
        }
    });
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {

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();
}

(전에 로그캣이 8000자를 넘어서 새로 질문을 작성하였습니다.)

http://www.masterqna.com/android/64678/%EB%A1%9C%EA%B7%B8%EC%BA%A3-%EB%A1%9C%EA%B7%B8%EC%BA%A3-%EB%A1%9C%EA%B7%B8%EC%BA%A3-%EB%A1%9C%EA%B7%B8%EC%BA%A3-%EB%A1%9C%EA%B7%B8%EC%BA%A3

동영상 검색 창에 검색내용이 없는 문장을 입력하면(예: 영상이 a,b,c만 있는데 d를 검색한 경우) 앱이 중지되네요;

도대체 어디가 문제인 거죠? 알려주시면 정말 감사합니다!

주니어Programmer (480 포인트) 님이 2016년 6월 2일 질문

1개의 답변

0 추천
 
채택된 답변
제가 보기엔 이런 작업은 getView에서 작업하시면 안될것 같네요.

Activity 단에서 데이터부분을 처리하고

getView에서는 보여주는 부분정도를 처리하시는게 좋을듯 합니다.

adapter에서는 전달받은 list 사이즈만큼 셀을 그리려고 할텐데

조건에 따라 그리고 안그리고 한다면 n개만큼 셀을 그려야 정상인데 n-n개를 한다면 당연히 에러가 나겠죠..
캬옹이 (37,920 포인트) 님이 2016년 6월 2일 답변
주니어Programmer님이 2016년 6월 3일 채택됨
...