Android试图将图像作为ByteArray放入sqlite数据库,但put方法出错

Android试图将图像作为ByteArray放入sqlite数据库,但put方法出错,android,image,sqlite,bytearray,put,Android,Image,Sqlite,Bytearray,Put,我试图将图像与一些字符串一起输入数据库,但我的put方法出现以下错误: The method put(String, String) in the type ContentValues is not applicable for the arguments (String, Byte[]) 但当我在教程中看到它的时候,它看起来就像我做的一样 以下是相关代码: private static final String DATABASE_CREATE = "CREATE Table "

我试图将图像与一些字符串一起输入数据库,但我的put方法出现以下错误:

The method put(String, String) in the type ContentValues is not applicable for the arguments (String, Byte[]) 
但当我在教程中看到它的时候,它看起来就像我做的一样

以下是相关代码:

private static final String DATABASE_CREATE = 
    "CREATE Table " + DATABASE_TABLE_LIST + " ( "
    + LIST_ID + " integer PRIMARY KEY Autoincrement, "
    + LIST_NAME + " text NOT NULL, "
    + LIST_ADDRESS + " text NOT NULL, " 
    + LIST_IMAGE + " BLOB );";

...

public long createItem(String name, String address, Byte[] image) {
    ContentValues initialValues = new ContentValues();
    initialValues.put(LIST_NAME, name);
    initialValues.put(LIST_ADDRESS, address);
    initialValues.put(LIST_IMAGE, image);
    return mDb.insert(DATABASE_TABLE_LIST, null, initialValues);
}
我想这可能与放置字符串以及字节数组有关,但我不知道如何解决它,也无法通过谷歌搜索找到它。看这里:

看这里:


我觉得奇怪的是,你试图插入一个Byte数组。您的图像数据很可能是一个byte数组。由于没有针对字节对象数组的put方法,而只针对基本数据类型字节的数组,编译器不知道该做什么。

我觉得奇怪的是,您试图插入一个B字节数组。您的图像数据很可能是一个byte数组。由于没有针对字节对象数组的put方法,而只针对基本数据类型字节的数组,编译器不知道该做什么。

是的,这是我用作基础的教程之一。但是,我的查询和方法在单独的DatabaseAdapter类中与数据库交互。我在我的activity类中调用createItem方法,因此我不必在每个不同的activity类中重写这些数据库交互代码块。在我的Activity类中,我将调用类似DatabaseAdapter.createItem的东西(字符串名称、字符串地址、字节[]图像);是的,这是我用作基础的教程之一。但是,我的查询和方法在单独的DatabaseAdapter类中与数据库交互。我在我的activity类中调用createItem方法,因此我不必在每个不同的activity类中重写这些数据库交互代码块。在我的Activity类中,我将调用类似DatabaseAdapter.createItem的东西(字符串名称、字符串地址、字节[]图像);
DefaultHttpClient mHttpClient = new DefaultHttpClient();  
HttpGet mHttpGet = new HttpGet("your image url");  
HttpResponse mHttpResponse = mHttpClient.execute(mHttpGet);  
if (mHttpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {  
  HttpEntity entity = mHttpResponse.getEntity();  
    if ( entity != null) {  
      // insert to database  
      ContentValues values = new ContentValues();  
      values.put(MyBaseColumn.MyTable.ImageField, EntityUtils.toByteArray(entity));  
      getContentResolver().insert(MyBaseColumn.MyTable.CONTENT_URI, values);  
    }  
}