我想在我的 android 应用程序中添加添加到收藏夹选项
I want to add an add to favourite option in my android app
我正在制作简单的壁纸应用程序。我想添加到要实施的最喜欢的选项。我正在使用 sqlite 存储图像链接,然后通过 picasso 加载它。帮助我了解如何添加最喜欢的按钮。谢谢!
您需要在 Table
中添加新列
例如最喜欢
并存储 布尔值 值,例如 0 - 不喜欢和 1 - 最喜欢
然后在你需要触发查询之后你想如何从数据库中获取数据
如需更多帮助,您可以参考this link
示例:
我们有这个 table - DataTable
1) 编写 SQLite 数据库处理程序 Class
public class DatabaseHandler extends SQLiteOpenHelper {
// All Static variables
// Database Version
private static final int DATABASE_VERSION = 1;
// Database Name
private static final String DATABASE_NAME = "dataManager";
// table name
private static final String TABLE_DATA = "data";
// Table Columns names
private static final String KEY_ID = "id";
private static final String KEY_IMG_URL = "ImgFavourite";
private static final String KEY_IS_FAVOURITE= "IsFavourite";
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_TABLE = "CREATE TABLE " + TABLE_DATA + "("
+ KEY_ID + " INTEGER PRIMARY KEY," + KEY_IMG_URL+ " TEXT,"
+ KEY_IS_FAVOURITE+ " INTEGER" + ")";
db.execSQL(CREATE_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_DATA );
// Create tables again
onCreate(db);
}
插入新记录
// Adding new data
public void addData(Data data) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_IMG_URL, data.getImgUrl());
values.put(KEY_IS_FAVOURITE, data.getIsFavoutire());
// Inserting Row
db.insert(TABLE_DATA, null, values);
db.close(); // Closing database connection
正在更新记录
// Updating single data
public int updateData(Data data) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_IMG_URL, data.getImgUrl());
values.put(KEY_IS_FAVOURITE, data.getIsFavoutire());
// updating row
return db.update(TABLE_DATA, values, KEY_ID + " = ?",
new String[] { String.valueOf(data.getID()) });
}
注意:SQLite 没有单独的布尔存储 class。相反,布尔值存储为整数 0(假)和 1(真)。
更多帮助需要参考this link
我正在制作简单的壁纸应用程序。我想添加到要实施的最喜欢的选项。我正在使用 sqlite 存储图像链接,然后通过 picasso 加载它。帮助我了解如何添加最喜欢的按钮。谢谢!
您需要在 Table
中添加新列例如最喜欢
并存储 布尔值 值,例如 0 - 不喜欢和 1 - 最喜欢
然后在你需要触发查询之后你想如何从数据库中获取数据
如需更多帮助,您可以参考this link
示例: 我们有这个 table - DataTable
1) 编写 SQLite 数据库处理程序 Class
public class DatabaseHandler extends SQLiteOpenHelper {
// All Static variables
// Database Version
private static final int DATABASE_VERSION = 1;
// Database Name
private static final String DATABASE_NAME = "dataManager";
// table name
private static final String TABLE_DATA = "data";
// Table Columns names
private static final String KEY_ID = "id";
private static final String KEY_IMG_URL = "ImgFavourite";
private static final String KEY_IS_FAVOURITE= "IsFavourite";
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_TABLE = "CREATE TABLE " + TABLE_DATA + "("
+ KEY_ID + " INTEGER PRIMARY KEY," + KEY_IMG_URL+ " TEXT,"
+ KEY_IS_FAVOURITE+ " INTEGER" + ")";
db.execSQL(CREATE_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_DATA );
// Create tables again
onCreate(db);
}
插入新记录
// Adding new data
public void addData(Data data) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_IMG_URL, data.getImgUrl());
values.put(KEY_IS_FAVOURITE, data.getIsFavoutire());
// Inserting Row
db.insert(TABLE_DATA, null, values);
db.close(); // Closing database connection
正在更新记录
// Updating single data
public int updateData(Data data) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_IMG_URL, data.getImgUrl());
values.put(KEY_IS_FAVOURITE, data.getIsFavoutire());
// updating row
return db.update(TABLE_DATA, values, KEY_ID + " = ?",
new String[] { String.valueOf(data.getID()) });
}
注意:SQLite 没有单独的布尔存储 class。相反,布尔值存储为整数 0(假)和 1(真)。
更多帮助需要参考this link