1

我在 Eclipse 中遇到 SQLite 类的 put 方法的编译器错误,“put”带有下划线,我收到消息“将“KEY_CHECKBOX_STATUS”的类型更改为 String”

   contentValues.put(KEY_CHECKBOX_STATUS, checkBoxStatus);

我怎样才能解决这个问题,所以我可以使用整数?还是不能将 int 用于 put 方法?我是否必须对所有内容都使用字符串并在需要时将其从字符串转换回整数?

数据库变量:

    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

2 回答 2

4

方法中的第一个参数put必须是字符串,checkBoxStatus可以是整数。只是改变

public static final int KEY_CHECKBOX_STATUS = 0;  

public static final String KEY_CHECKBOX_STATUS = "check_box_status;
于 2013-04-10T02:38:14.513 回答
0

Key 需要一个 String 对象。int 是原始类型,所以它不会有 toString() 等方法。使用 Integer 代替 int,并调用 toString 方法。

于 2013-04-10T03:40:53.073 回答