Android 检索存储在sqlite中并显示在gridview中的图标

Android 检索存储在sqlite中并显示在gridview中的图标,android,icons,android-sqlite,android-gridview,Android,Icons,Android Sqlite,Android Gridview,我从互联网上获得了源代码,我试图 修改它,以便它可以检索存储在sd卡中的某个文件夹中的所有图标 并在gridview中显示。同时,一旦用户单击图标,它将链接到另一个活动。但我没能做到。代码如下所示提前感谢能够提供帮助的人 DatabaseHandler.java import java.util.ArrayList; import java.util.List; import android.content.ContentValues; import android.content.Conte

我从互联网上获得了源代码,我试图 修改它,以便它可以检索存储在sd卡中的某个文件夹中的所有图标 并在gridview中显示。
同时,一旦用户单击图标,它将链接到另一个活动。但我没能做到。代码如下所示
提前感谢能够提供帮助的人

DatabaseHandler.java

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DataBaseHandler extends SQLiteOpenHelper {


private static final int DATABASE_VERSION = 1;

// Database Name
private static final String DATABASE_NAME = "DISPLAYAPPS_MAIN";

// Contacts table name
 private static final String TABLE_MAINAPPS = "MAINAPPS";

 // Contacts Table Columns names
 private static final String KEY_ID = "id";
 private static final String KEY_NAME = "name";
 private static final String KEY_IMAGE = "image";

 public DataBaseHandler(Context context) {
  super(context, DATABASE_NAME, null, DATABASE_VERSION);
 }

 // Creating Tables
 @Override
 public void onCreate(SQLiteDatabase db) {
  String CREATE_APPS_TABLE = "CREATE TABLE " + TABLE_MAINAPPS + "("
    + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
    + KEY_IMAGE + " BLOB" + ")";
  db.execSQL(CREATE_APPS_TABLE);
 }

 // Upgrading database
 @Override
 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  // Drop older table if existed
  db.execSQL("DROP TABLE IF EXISTS " + TABLE_MAINAPPS);

  // Create tables again
  onCreate(db);
 }


// Adding new apps
 public void addApps(APPS apps) {
  SQLiteDatabase db = this.getWritableDatabase();

  ContentValues values = new ContentValues();
  values.put(KEY_NAME, apps._name); // Apps Name
  values.put(KEY_IMAGE, apps._image); // Apps image

  // Inserting Row
  db.insert(TABLE_MAINAPPS, null, values);
  db.close(); // Closing database connection
 }

 // Getting single contact
 APPS getAPPS(int id) {
  SQLiteDatabase db = this.getReadableDatabase();

  Cursor cursor = db.query(TABLE_MAINAPPS, new String[] { KEY_ID,
    KEY_NAME, KEY_IMAGE }, KEY_ID + "=?",
    new String[] { String.valueOf(id) }, null, null, null, null);
  if (cursor != null)
   cursor.moveToFirst();

  APPS apps = new APPS(Integer.parseInt(cursor.getString(0)),
    cursor.getString(1), cursor.getBlob(1));

  // return contact
  return apps;

 }

 // Getting All Contacts
 public List<APPS> getAllAPPS() {
  List<APPS> appsList = new ArrayList<APPS>();
  // Select All Query
  String selectQuery = "SELECT  * FROM MAINAPPS ORDER BY name";

  SQLiteDatabase db = this.getWritableDatabase();
  Cursor cursor = db.rawQuery(selectQuery, null);
  // looping through all rows and adding to list
  if (cursor.moveToFirst()) {
   do {
    APPS apps = new APPS();
    apps.setID(Integer.parseInt(cursor.getString(0)));
    apps.setName(cursor.getString(1));
    apps.setImage(cursor.getBlob(2));

   // String name = cursor.getString(1) +"\n"+ cursor.getBlob(2); 
    // Adding contact to list
    appsList.add(apps);
   } while (cursor.moveToNext());
   }
  // close inserting data from database
  db.close();
  // return contact list
  return appsList;

 }

 // Updating single contact
 public int updateAPPS(APPS apps) {
  SQLiteDatabase db = this.getWritableDatabase();

  ContentValues values = new ContentValues();
  values.put(KEY_NAME, apps.getName());
  values.put(KEY_IMAGE, apps.getImage());

  // updating row
  return db.update(TABLE_MAINAPPS, values, KEY_ID + " = ?",
    new String[] { String.valueOf(apps.getID()) });

 }

 // Deleting single contact
 public void deleteContact(APPS contact) {
  SQLiteDatabase db = this.getWritableDatabase();
  db.delete(TABLE_MAINAPPS, KEY_ID + " = ?",
    new String[] { String.valueOf(contact.getID()) });
  db.close();
 }

 // Getting contacts Count
 public int getContactsCount() {
  String countQuery = "SELECT  * FROM " + TABLE_MAINAPPS;
  SQLiteDatabase db = this.getReadableDatabase();
  Cursor cursor = db.rawQuery(countQuery, null);
  cursor.close();

  // return count
  return cursor.getCount();
}

尝试替换:

public class GridViewActivity extends Activity 
用于

public class GridViewActivity extends Activity implements AdapterView.OnItemClickListener 
public class GridViewActivity extends Activity 
public class GridViewActivity extends Activity implements AdapterView.OnItemClickListener