2017-12-23 21 views
0
나는이 코드를 작성

작동하지 및 논리 목록보기에서 항목 1에있는 int 데이터베이스 업데이트를 클릭 할 때처럼해야하고 클릭하면 다시 0으로 다시 업데이트 만 0SQLite는 업데이트 목록

listView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { 
    @Override 
    public boolean onChildClick(ExpandableListView expandableListView, 
     View view, 
     int groupPosition, 
     int childPosition, 
     long id) { 
      int num = dbHelper.getActive(child.getTourId(),child.getSiteName()); 
      if (num == 1){ 
       Log.i("database",num+""); 
       dbHelper.setDeAvtive(child.getSiteName(),child.getTourId()); 

      } else if (num == 0){ 
       Log.i("database",num+""); 
       dbHelper.setActive(child.getSiteName(),child.getTourId());     
      } 
      return true; 
      } 
    }); 
} 
로 업데이트의

이것은 내 DB 클래스

활성 클래스

public void setActive(String name,int id){ 
    SQLiteDatabase db = getWritableDatabase(); 
    ContentValues values = new ContentValues(); 
    values.put(ChildTour.ACTIVE,1); 
    db.update(name,values,ChildTour.ACTIVE+"="+id,null); 
    Log.i("database",id+" Activated"); 

비활성화 클래스

public void setDeAvtive(String name,int id){ 
    SQLiteDatabase db = getWritableDatabase(); 
    ContentValues values = new ContentValues(); 
    values.put(ChildTour.ACTIVE,0); 
    db.update(name,values,ChildTour.ACTIVE+"="+id,null); 
    Log.i("database",id+" DeActivated"); 
getActive 클래스

public int getActive(int tourId,String name) { 
    SQLiteDatabase db = getReadableDatabase(); 
    int activeCode = 0; 
    Cursor cursor = null; 
    try { 
     cursor = db.rawQuery("SELECT " + ChildTour.ACTIVE + " FROM " 
       + name + " WHERE " + ChildTour.TOUR_ID + " = " + tourId, null); 
     if (cursor.getCount() > 0) { 
      cursor.moveToFirst(); 
      activeCode= cursor.getInt(cursor.getColumnIndex(ChildTour.ACTIVE)); 
      Log.i("databse", "UpdateCode is: " + updateCode); 

     } 
     return activeCode; 
    } finally { 
     cursor.close(); 
    } 
} 

및 클릭이 내 로그인 5 회

12-24 09:32:02.091 5032-5032/app.mma.introsliderproject I/database: 3 Activated 
12-24 09:32:02.331 5032-5032/app.mma.introsliderproject I/database: 0 
12-24 09:32:02.331 5032-5032/app.mma.introsliderproject I/database: 3 Activated 
12-24 09:32:02.571 5032-5032/app.mma.introsliderproject I/database: 0 
12-24 09:32:02.571 5032-5032/app.mma.introsliderproject I/database: 3 Activated 
12-24 09:32:02.761 5032-5032/app.mma.introsliderproject I/database: 0 
12-24 09:32:02.761 5032-5032/app.mma.introsliderproject I/database: 3 Activated 
12-24 09:32:02.991 5032-5032/app.mma.introsliderproject I/database: 0 
12-24 09:32:02.991 5032-5032/app.mma.introsliderproject I/database: 3 Activated 
12-24 09:32:03.171 5032-5032/app.mma.introsliderproject I/database: 0 
12-24 09:32:03.171 5032-5032/app.mma.introsliderproject I/database: 3 Activated 
+0

update() 메소드의 리턴을 확인하면 영향을받는 행의 수를 반환합니다 – elmorabea

+0

@elmorabea 항상 0을 확인합니다 – Osairon

답변

2

메신저 미안 사람이 다시 미안 메신저이 db.update(name,values,ChildTour.TOUR_ID+"="+id,null); 같이해야 setActive 및 setDeActive 업데이트 코드에 새로운 메신저

+0

그럼 문제가 해결 되었습니까? – ABDevelopers

+0

참으로 제 실수 였어. 나는 ABABevelopers를 잠잘 필요가있어. – Osairon