我在将图像插入我的sqlite时遇到了问题。 这是我的插入代码
String query290 = "INSERT INTO scholar_table(Name,Top,Continent,Region,Location,Introduction,Alumni,Icon) " +
"values ('Wesleyan University Philippines','290','Luzon','Region 3','Nueva Ecija','WUP Intro','WUP Alumni','" + R.drawable.top1 +"')";
sqlHandler.executeQuery(query290);
String query291 = "INSERT INTO scholar_table(Name,Top,Continent,Region,Location,Introduction,Alumni, Icon) " +
"values ('University of the Philippines Diliman','1','Luzon','NCR','Quezon City','UPD Intro','UPD Alumni','" + R.drawable.top10 + "')";
sqlHandler.executeQuery(query291);
我的SchoolDB课程
public class SchoolDB {
private String id, name, top, continent, region, location, introduction, alumni;
private byte[] icon;
public SchoolDB()
{
}
public SchoolDB(String id,String name,String top, String continent, String region, String location, String introduction,
String alumni, byte[] icon)
{
this.id=id;
this.name=name;
this.top=top;
this.continent=continent;
this.region=region;
this.location=location;
this.introduction=introduction;
this.alumni=alumni;
this.icon=icon;
}
public void setIcon(byte[] icon){
this.icon = icon;
}
public void setId(String id){
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setTop(String top) {
this.top = top;
}
public void setContinent(String continent) {
this.continent = continent;
}
public void setRegion(String region) {
this.region = region;
}
public void setLocation(String location) {
this.location = location;
}
public void setIntroduction(String introduction) {
this.introduction = introduction;
}
public void setAlumni(String alumni) {
this.alumni = alumni;
}
public String getAlumni() {
return alumni;
}
public String getIntroduction() {
return introduction;
}
public String getLocation() {
return location;
}
public String getRegion() {
return region;
}
public String getContinent() {
return continent;
}
public String getTop() {
return top;
}
public String getName() {
return name;
}
public String getId() {
return id;
}
public byte[] getIcon() {
return icon;
}
}
我的处理程序
public class SQLHandler {
public static final String DATABASE_NAME = "SCHOOLdb";
public static final int DATABASE_VERSION = 1;
Context context;
SQLiteDatabase sqlDatabase;
DatabaseHelper dbHelper;
public SQLHandler(Context context) {
dbHelper = new DatabaseHelper(context, DATABASE_NAME, null,
DATABASE_VERSION);
sqlDatabase = dbHelper.getWritableDatabase();
}
public void executeQuery(String query) {
try {
if (sqlDatabase.isOpen()) {
sqlDatabase.close();
}
sqlDatabase = dbHelper.getWritableDatabase();
sqlDatabase.execSQL(query);
} catch (Exception e) {
System.out.println("DATABASE ERROR " + e);
}
}
public Cursor selectQuery(String query) {
Cursor c1 = null;
try {
if (sqlDatabase.isOpen()) {
sqlDatabase.close();
}
sqlDatabase = dbHelper.getWritableDatabase();
c1 = sqlDatabase.rawQuery(query, null);
} catch (Exception e) {
System.out.println("DATABASE ERROR " + e);
}
return c1;
}
}
DatabaseHelper
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "Schoolar";
public static final String TABLE_NAME = "scholar_table";
public static final String COL_ID = "ID";
public static final String COL_NAME = "Name";
public static final String COL_TOP = "Top";
public static final String COL_CONTINENT = "Continent";
public static final String COL_REGION = "Region";
public static final String COL_LOCATION = "Location";
public static final String COL_INTRODUCTION = "Introduction";
public static final String COL_ALUMNI = "Alumni";
public static final String COL_ICON = "Icon";
private static final String CREATE_DATABASE = "create table " + TABLE_NAME + " (" + COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ COL_NAME + " TEXT," + COL_TOP + " TEXT," + COL_CONTINENT + " TEXT," + COL_REGION +
" TEXT," + COL_LOCATION + " TEXT," + COL_INTRODUCTION + " TEXT," + COL_ALUMNI + " TEXT"
+ COL_ICON + " BLOB," + ")";
SQLiteDatabase mDb;
SQLHandler sqlHandler;
public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,
int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_DATABASE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
此处显示列表的代码是我的问题所在,我无法获取已插入的图像
private void showlist() {
ArrayList<SchoolDB> contactList = new ArrayList<SchoolDB>();
contactList.clear();
String query = "SELECT * FROM scholar_table ORDER BY Top";
Cursor c1 = sqlHandler.selectQuery(query);
if (c1 != null && c1.getCount() != 0) {
if (c1.moveToFirst()) {
do {
SchoolDB contactListItems = new SchoolDB();
contactListItems.setId(c1.getString(c1
.getColumnIndex("ID")));
contactListItems.setName(c1.getString(c1
.getColumnIndex("Name")));
contactListItems.setTop(c1.getString(c1
.getColumnIndex("Top")));
contactListItems.setContinent(c1.getString(c1
.getColumnIndex("Continent")));
contactListItems.setRegion(c1.getString(c1
.getColumnIndex("Region")));
contactListItems.setLocation(c1.getString(c1
.getColumnIndex("Location")));
contactListItems.setIntroduction(c1.getString(c1
.getColumnIndex("Introduction")));
contactListItems.setAlumni(c1.getString(c1
.getColumnIndex("Alumni")));
//contactListItems.setIcon(c1.getBlob(c1.getColumnIndex("Icon")));
contactList.add(contactListItems);
} while (c1.moveToNext());
}
}
c1.close();
TopSchoolListAdapter topSchoolListAdapter = new TopSchoolListAdapter(
GuestView.this, contactList);
ListViewMenu.setAdapter(topSchoolListAdapter);
}
这是我的列表适配器。设置ImageView的另一部分问题
public class TopSchoolListAdapter extends BaseAdapter {
Context context;
ArrayList<SchoolDB> menuCatList;
public TopSchoolListAdapter(Context context, ArrayList<SchoolDB> list) {
this.context = context;
menuCatList = list;
}
@Override
public int getCount() {
return menuCatList.size();
}
@Override
public Object getItem(int position) {
return menuCatList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup arg2) {
SchoolDB menuCatListItems = menuCatList.get(position);
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.custom_school_list_view, null);
}
ImageView itemIcon = (ImageView) convertView.findViewById(R.id.schoolLogo);
TextView itemNum = (TextView) convertView.findViewById(R.id.schoolName);
itemNum.setText(menuCatListItems.getName());
TextView itemDesc = (TextView) convertView.findViewById(R.id.schoolLocation);
itemDesc.setText(menuCatListItems.getLocation());
TextView itemPrice = (TextView) convertView.findViewById(R.id.schoolTop);
itemPrice.setText(menuCatListItems.getTop());
return convertView;
}