2013-04-10 1 views
1

SQLite 클래스의 put 메서드에 대한 컴파일러 오류가 발생합니다. "put"에 밑줄이 그어져 있고 "KEY_CHECKBOX_STATUS"유형의 메시지가 나타납니다. "문자열로"int를 SQLite put 메서드, 컴파일러 오류, 안드로이드를 사용할 수 없습니다

contentValues.put(KEY_CHECKBOX_STATUS, checkBoxStatus); 

어떻게 정수를 사용할 수 있습니까? 또는 put 메서드에 int를 사용할 수 없습니까? 필요한 경우 문자열을 모두 사용해야하고 문자열에서 int로 캐스팅해야합니까?

데이터베이스 변수 :

public static final String MYDATABASE_NAME = "my_database"; 
    public static final String MYDATABASE_TABLE = "my_table"; 
    public static final int MYDATABASE_VERSION = 1; 
    public static final int KEY_CHECKBOX_STATUS = 0; 
    public static final String KEY_CHECKBOX_LABEL = "Example Label"; 

    //create table MY_DATABASE (ID integer primary key, Content text not null); 
    private static final String SCRIPT_CREATE_DATABASE = 
    "CREATE_TABLE IF NOT EXISTS " + MYDATABASE_TABLE + " (" + "ID INTEGER PRIMARY KEY AUTOINCREMENT, " + 
    + KEY_CHECKBOX_STATUS + " BIT, " + KEY_CHECKBOX_LABEL + " TEXT NOT NULL);"; 

삽입 방법은

public void insert(Integer checkBoxStatus){ 

      ContentValues contentValues = new ContentValues(); 
      contentValues.put(KEY_CHECKBOX_STATUS, checkBoxStatus); // <-- compiler error 
      sqLiteDatabase.insert(MYDATABASE_TABLE, null, contentValues); 
     } 

답변

4

put 방법 제 PARAM 문자열을 갖는다는 것으로, checkBoxStatus는 정수일 수있다. 그냥 키가 String 객체를 필요로

public static final String KEY_CHECKBOX_STATUS = "check_box_status; 
0

public static final int KEY_CHECKBOX_STATUS = 0; 

을 변경합니다. int는 기본 유형이므로 toString()과 같은 메소드를 갖지 않습니다. int 대신 Integer를 사용하고 toString 메소드를 호출하십시오.

관련 문제