먼저 DB 구성입니다

public class BuildingInfo {
 public static final class building implements BaseColumns{
  public static final String NO = "no";
  public static final String NAME = "name";
  public static final String LATI = "lati";
  public static final String LONGI = "longi";
  public static final String CNTL = "cntl1";
  public static final String _TABLENAME = "building";
  public static final String _CREATE = 
    "create table "+_TABLENAME+"("+_ID+" integer primary key autoincrement, "
      +NO+" text not null, "+NAME+" text not null, " +LATI+" float zerofill, "
      +LONGI+" text zerofill, "+CNTL+" integer zerofill);";
  }
}

 

보시다시피  building 이란 테이블을 만들고 NO, NAME, LATE, LONGI, CNTL 필드가 있습니다.여기서 CTNL 필드는 나중에 체크박스의 ON/OFF 를 위해 만들어 놓았고 처음엔 '0' 으로 채욷록 했습니다. 

 

그리고 이제 제가 구현 하고 싶은  AlertDialog 에서 setMultiChoiceItems 을 보면 

 new AlertDialog.Builder(this)
      .setIcon(R.drawable.stat_happy)
      .setTitle("삭제할 건물들을 선택하시오.")
         .setMultiChoiceItems(bldgDB.get(), BuildingInfo.building.CNTL, BuildingInfo.building.NAME,
           new DialogInterface.OnMultiChoiceClickListener(){
           @Override
           public void onClick (DialogInterface dialog, int which, boolean isChecked) {                                }
                  })

 

DB를 이용한  setMultiChoiceItems 의 원형은

setMultiChoiceItems( Cursor cursr, String  isCheckedColumn, String labelColumn, DialogInterface.OnmultiChoiceClickListener listener)

입니다.

 

위의 코드로 실행을 시키면 에러는 발생하지 않습니다.

하지만  체크박스에 손으로 터치 했을 경우 체크박스에 표시가 되지 않습니다.

제 생각으론  onClick 매서드를 수정해야 할꺼 같은데 도통 모르겠습니다. 대부분의 예제들은  객체배열을 이용하여 구현하였는데

DB를 이용해서 구현한 예제는 없네요.

 

고수님들 도와 주세요.