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

리스트 뷰 검색 기능 (버튼활용)

0 추천
fragment를 상속받은 리스트에 검색기능을 추가하려고 합니다. 

버튼을 누를시 edit에 입력 된 값이랑 db에 저장된 값이랑 확인하여

같으면 배열에 추가해주고 나중에 그 배열에 어댑터에 넣어 리스트에 뿌려주게 하려고

만든 건데 아무것도 뿌려주질 않아서 질문드립니다.

이건 버튼 부분

searchbtn.setOnClickListener(new OnClickListener() {
      
      @Override
      public void onClick(View v) {
       // TODO Auto-generated method stub
       edit = etxt1.getText().toString();
       if(edit.length()!=0){
       searchArray = new ArrayList<InfoClass>();
       searcharray();
       mAdapter = new CustomAdapter(getActivity(), searchArray);
       mAdapter.setArrayList(searchArray);
       mAdapter.notifyDataSetChanged();
       mListView.setAdapter(mAdapter);
      }
       else{
       mAdapter.setArrayList(mInfoArray);
       mAdapter.notifyDataSetChanged();
        mListView.setAdapter(mAdapter);
       }
      }
     });

이건 버튼 클릭시 중간에 호출되는 커서

  private void searcharray(){
   mCursor = null;
   mCursor = mDbOpenHelper.getAllColumns();

   while (mCursor.moveToNext()) {

    mInfoClass = new InfoClass(mCursor.getInt(mCursor
      .getColumnIndex("_id")), mCursor.getString(mCursor
      .getColumnIndex("name")), mCursor.getString(mCursor
      .getColumnIndex("phone")));
    if(edit==mInfoClass.name){
    searchArray.add(mInfoClass);
    }
   }
   mCursor.close();
   
  }

mInfoArray는 모든 값이 들어있는 배열이고 검색을 할시 해당하는 값들만 추가하는 배열이 search 배열입니다. 특별히 에러가 나거나 강제 종료는 안나는데 리스트에 아무것도 뿌려주질 않아서 질문 드립니다.

 

프리머니 (270 포인트) 님이 2015년 7월 10일 질문
자답입니다.
커서에서 if문 안에 "=="대신 equals 사용했고 그안엔 커서에서 가져온 name 값을 확인하게 했더니 됬네요
소스로 보면if(edit.equals(mCursor.getString(mCursor.getColumnIndex("name")))){               
                searchArray.add(mInfoClass);
                }

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...