Sur l'application Android CNN, il existe une fonctionnalité pour enregistrer un contenu de nouvelles/histoire sur le téléphone, de sorte que l'utilisateur peut accéder à ces histoires sauvegardées lorsqu'il n'est pas connecté à Internet (ie, en mode déconnecté). aussi essayer de faire quelque chose de similaire sur mon application Android nouvelles ... s'il vous plaît comment puis-je aller sur cecomment les histoires de sauvegarde sur l'application Android CNN fonctionne?
0
A
Répondre
0
Ok, permet de le faire)
1. Vous devez créer MySQLiteLoader.class
qui sera étendre SQLiteOpenHelper
pour sauver et chargez newsItems
.
2. La base de données SQLite contient des colonnes telles que: Titre, sous-titre, description, image (BLOB), autre.
3. Ajouter saveSingleNew()
méthode. FeedItem.class
- exemple de classe qui contiendra vos nouvelles.
Exemple:
public void addSite(FeedItem site){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_TITLE, site.getTitle()); // title
values.put(KEY_SUB_TITLE, site.getSubTitle()); // subtitle
values.put(KEY_DATE, site.getDate()); // date
values.put(KEY_IMG, site.getImg()); // img to byte[]
values.put(KEY_DESCRIPTION, site.getSubTitle()); // description
db.close();
}
4. méthode Create getAllNews()
.
Exemple:
public List<FeedItem> getAllNews() {
List<FeedItem> items = new ArrayList<>();
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_NEWS, null, null, null, null, null, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
FeedItem item = new FeedItem();
item.setItemId(Integer.parseInt(cursor.getString(0))); //Item id.
item.setTitle(cursor.getString(1));
item.setSubTitle(cursor.getString(2));
item.setDate(cursor.getString(3));
byte [] b = cursor.getBlob(1);
Drawable image = new BitmapDrawable(BitmapFactory.decodeByteArray(b, 0, b.length));
item.setDrawableId(image);
item.setImageBlob(cursor.getString(4));
item.setDescription(cursor.getString(5)); // description.
items.add(item);
} while (cursor.moveToNext());
}
cursor.close();
db.close();
// return news list
return items;
}
5. Faire une MyCustomAdapter(ArrayList<FeedItems>);
pour montrer nos nouvelles dans la liste.
Exemple: Custom list adapter
Utilisez la méthode getAllNews()
pour obtenir votre liste de tableau enregistrée de nouvelles dans l'adaptateur personnalisé. Bouton
Ajouter un bouton SAVE
.
6. Profitez de votre application)