안녕하세요 안드로이드 디비에 관련된것을 만들고 있는데요

 

전화번호 목록을 받아와 ListView로 뿌려줍니다.

 

멀티 체크로 ListView는 만들어 져 있고요

 

체크 한값을 Save 버튼을 누르게 되면 저장 되어야 합니다.

 

다음 함수가 DB에 저장하는 함수를 구현 하고 있는 것입니다.

 

문제는 빨간색에서

 

DB에 있는 name과 체크된 name을 비교해서

 

DB에 있는 값이면 pass 하고

 

DB에 없는 값만 저장 하고자 합니다.

 

DB의 name 과 체크된 name과 비교해서 있는 값은 있다고 표시가 되는데

 

같은 값이 없으면 if문을 들어가질 않네요

 

붉은색 부분입니다

 

한번 보시고 수정해야 되는 부분좀 알려주세요 ㅠㅠ

 

너무 급한거라서 ㅜㅜ 추석때도 계속 잡고 있었는데 해결이 되지 않았습니다.

 

부탁드립니다.

 

public void save_DB() {
  // TODO Auto-generated method stub
  
  ListView v = getListView();
  Adapter adapter = v.getAdapter();
  SparseBooleanArray checked = v.getCheckedItemPositions();
  String id;
  String name;
  String number;
  
  Cursor DB_c;
  boolean bool = false;
  db_phone = new Phone_Number_DB(this, null, null, 0);

  try{
   db = db_phone.getWritableDatabase();
  }catch(SQLiteException ex){
   db = db_phone.getReadableDatabase();
  
  }
  
  for (int i = 0; i < checked.size(); i++) { 
   
   if(checked.valueAt(i) == true) {
      Cursor c = (Cursor) adapter.getItem(i);
    id = c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.Phone._ID));
    name = c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
    number = c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
   
    Toast.makeText(Phone_Address_Access.this, "before : "+name, Toast.LENGTH_SHORT).show();
   
    DB_c = db.rawQuery("SELECT name FROM phone_number WHERE name='"+name+"';", null);
   
    while(DB_c.moveToNext()){
     
     String test = DB_c.getString(0).toString();
     if(test.equals(name)) //DB의 name과 체크 된 name이 같은지 비교, 있으면 if문 실행
     {
      Log.i("TAG", name + "같은 값이 있습니다! ");
      bool = false;
      break;
     }
     else if(!(test.equals(name))) // 문제 되는 부분!!! 같지 않으면 if문 실행 해야 되는데 아예 들어 가질 않아요
     {
      Log.i("TAG", name +"같은 값이 없습니다 ! 새로 추가!!");
      bool = true;
     }
     
    }
    
    if(bool)
    {
     Log.i("TAG", "같은 값이 없습니다 ! 새로 추가!!");
    // db.execSQL("INSERT INTO phone_number VALUES(null, '"+id+"', '" + name + "', '" + number +"');");
    // bool = false;
    }
    
   }
   

  }
  
  DB_c = db.rawQuery("SELECT id, name, number FROM phone_number", null);
  
  Log.i("TAG", "--------- table 확인 !! ---------------");
  while(DB_c.moveToNext()){
   Log.i("TAG", DB_c.getString(0).toString());
   Log.i("TAG", DB_c.getString(1).toString());
   Log.i("TAG", DB_c.getString(2).toString());
  }
  Log.i("TAG", "--------- table 확인 !! ---------------");

  
 }