samedi 21 mars 2015

display blob from sqlite database in gridview

I've got a simple sq-lite database shipped with the app that I'm trying to display blobs from in grid-view. So far I've managed to display Names from the database.


How do I go about displaying the blobs using my current code?


DBHelper class (champ_splash is the blob)



import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteQueryBuilder;


import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;


import java.sql.Blob;

public class myDBHelper extends SQLiteAssetHelper {

private static final String DATABASE_NAME = "champions.db";
private static final int DATABASE_VERSION = 2;

public myDBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
setForcedUpgrade();
}
public Cursor getChampions() {

SQLiteDatabase db = getReadableDatabase();
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();

String [] sqlSelect = {"0 _id", "Name", "champ_splash"};
String sqlTables = "Champions";

qb.setTables(sqlTables);
Cursor c = qb.query(db, sqlSelect, null, null,
null, null, null);
c.moveToFirst();
return c;
}

}


ChampionsActivity class



import android.app.Activity;
import android.media.Image;
import android.os.Bundle;
import android.database.Cursor;
import android.widget.GridView;
import android.widget.ListAdapter;
import android.widget.SimpleCursorAdapter;



public class championsActivity extends Activity {

private GridView gridView;
private Cursor champions;
private myDBHelper db;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_champions);
gridView = (GridView) findViewById(R.id.champion_grid);
db= new myDBHelper(this);
champions = db.getChampions();
ListAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_1,
champions,
new String[] {"Name"},
new int[] {android.R.id.text1});
gridView.setAdapter(adapter);
}

@Override
protected void onDestroy() {
super.onDestroy();
champions.close();
db.close();
}

}

Aucun commentaire:

Enregistrer un commentaire