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

리스트뷰 체크박스 DB 중복 저장 문제

0 추천
커스텀 리스트뷰를 만들었습니다. 어플 리스트인데요.

그런데 문제가 체크박스가 계속 유지되도록 DB에 저장 해둔 뒤

다시 리스트뷰가 있는 액티비티로 가졌을 때 DB과 같은 어플이름이 있는 위치에는 다시 체크가 되게 해놧습니다.

여기서 문제가 다시 체크가 될 시에 DB에 다시 또 저장 된다는 점입니다.

그래서 제가 어댑터에 조건을 주었는데요... 잘 안되는 것같아 이렇게 질문을 올립니다ㅜ

 

try {
                     // DB객체 생성(DB가 존재하지 않으면 생성함)
                        DBManager dbmgr = new DBManager(SlideApplicationChooserActivity.this);
                       
                        SQLiteDatabase sdb;
                       
                        // DB연결
                        sdb = dbmgr.getWritableDatabase();
                        Cursor cursor = sdb.rawQuery("select app from customers where '"+appList.appName+"'", null);
                     
                       
                        if(cursor.isFirst()){//중복저장방지
                         while(cursor.moveToNext()){
                          String app = cursor.getString(0);
                          if(appList.isCheck){ // 체크되 있다면                          
                           if(app==appList.appName) break; //서로 같으면                         
                           else sdb.execSQL("insert into customers values('" + appList.appName+ "');");//서로 다르면
                          }
                          else //안되 있다면
                           sdb.execSQL("delete from customers  where app = '" + appList.appName + "';");
                      }
                        }
                     else{//초기 체크
                      if(appList.isCheck){                         
                          sdb.execSQL("insert into customers values('" + appList.appName+ "');");
                         }
                         else
                          sdb.execSQL("delete from customers  where app = '" + appList.appName + "';");
                      }
                       
                        // DB닫음                       
                        dbmgr.close();
                    } catch (SQLiteException e) {
                     // 예외처리(생략)
                    }
익명사용자 님이 2014년 7월 9일 질문

답변 달기

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