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

ListView 초기화하는 방법이 궁금합니다.

0 추천

제가 버튼을 클릭하면 edittext에서 text를 받아 해당하는 data를 listview에 출력을 하고 있습니다.

처음 검색을 잘뜨는데 2번째때 검색을 하고 버튼을 누르면 첫번째 검색내용은 그대로 있고 그 밑으로 검색이 됩니다. 어떤 함수를 사용해야되나요?

notifyDataSetChanged()함수를 사용하면 된다고 해서 밑에 코드처럼 버튼코드에서 나와서 excel안에 함수를 적용해봤는데 되지 않습니다. 

public void Excel() {
   btn_start.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
           Workbook workbook = null;
           Sheet sheet = null;
           String result="";
           try {
               InputStream inputStream = getBaseContext().getResources().getAssets().open("dd.xls");
               workbook = Workbook.getWorkbook(inputStream);
               sheet = workbook.getSheet(0);
               int MaxColumn = 2, RowStart = 1, RowEnd = sheet.getColumn(MaxColumn - 1).length -1, ColumnStart = 0, ColumnEnd = sheet.getRow(2).length - 1;

               for(int row = RowStart; row <= RowEnd; row++) {
                   for(int column = ColumnStart; column <= ColumnEnd; column++){
                       String edt = EditText1.getText().toString();
                       String excelload = sheet.getCell(column, row).getContents();
                       if(excelload.contains(edt))
                             arrayAdapter.add(excelload);
                   }
               }

           } catch (IOException e) {
               e.printStackTrace();
           } catch (BiffException e) {
               e.printStackTrace();
           } finally {
               list_excel.setAdapter(arrayAdapter);
               workbook.close();
           }
       }
   });
    arrayAdapter.notifyDataSetChanged();
    
}

 

wns0789 (500 포인트) 님이 2019년 4월 2일 질문

1개의 답변

0 추천
 
채택된 답변
notifyDataSetChanged 는 데이터가 변경 됨을 알리는 것으로 코드로 봤을때 arrayAdapter.add(excelload) 에 데이터를 add 하는 형태가 아니고 set 하는 형태로 변경하고 그 이후 notifyDataSetChanged 를 호출하도록 변경해보세요

내부 소스가 없긴 하지만 list 에 데이터가 add 되었기 때문에 화면에 데이터가 추가되게 나오는것으로 파악됩니다.
aucd29 (218,390 포인트) 님이 2019년 4월 3일 답변
wns0789님이 2019년 4월 3일 채택됨
...