إنشاء الـ Repository: مستودع الـ livedata
السلام عليكم و رحمة الله
في هذا الفيديو سيتم إنشاء الـ Repository:و هي مستودع الـ livedata
الكود للكلاس:
package com.example.wordlist;
import android.app.Application;
import android.os.AsyncTask;
import androidx.lifecycle.LiveData;
import androidx.room.Delete;
import java.util.List;
public class WordsRepository {
private WordsDao mWordsDao;
private LiveData<List<Words>> getAllWords;
public WordsRepository (Application app)
{
WordRoomDb db = WordRoomDb.getInstance(app);
mWordsDao = db.wordsDao();
getAllWords = mWordsDao.getAllWords();
}
//operation
//insert
public void insert(Words word)
{
new InsertAsyncTask(mWordsDao).execute(word);
}
//delete
public void delete(Words word)
{
new DeleteAsyncTask(mWordsDao).execute(word);
}
//update
public void update(Words word)
{
new UpdateAsyncTask(mWordsDao).execute(word);
}
//getallwords
public LiveData<List<Words>> getAllWords()
{
return getAllWords;
}
//delete all words
public void deleteAllWords()
{
new DeleteAsyncTask(mWordsDao).execute();
}
private static class InsertAsyncTask extends AsyncTask<Words, Void, Void>{
private WordsDao mWordsDao;
public InsertAsyncTask(WordsDao wordsDao)
{
mWordsDao = wordsDao;
}
@Override
protected Void doInBackground(Words... words) {
mWordsDao.insert(words[0]);
return null;
}
}
private static class DeleteAsyncTask extends AsyncTask<Words, Void, Void>{
private WordsDao mWordsDao;
public DeleteAsyncTask(WordsDao wordsDao)
{
mWordsDao = wordsDao;
}
@Override
protected Void doInBackground(Words... words) {
mWordsDao.delete(words[0]);
return null;
}
}
private static class UpdateAsyncTask extends AsyncTask<Words, Void, Void>{
private WordsDao mWordsDao;
public UpdateAsyncTask(WordsDao wordsDao)
{
mWordsDao = wordsDao;
}
@Override
protected Void doInBackground(Words... words) {
mWordsDao.update(words[0]);
return null;
}
}
private static class DeleteAllWordsAsyncTask extends AsyncTask<Void, Void, Void>{
private WordsDao mWordsDao;
public DeleteAllWordsAsyncTask(WordsDao wordsDao)
{
mWordsDao = wordsDao;
}
@Override
protected Void doInBackground(Void... voids) {
mWordsDao.deleteAllWords();
return null;
}
}
}
محتوى الدورة
الكلمات الدليلية
عن الدرس
0 إعجاب |
2 متابع |
0 مشاركة |
979 مشاهدات |
منذ 4 سنوات |
التعليقات (1)
HSN_:
السلام عليكم
جزاكي الله كل خير شوكرا جزيلا على هذا الشرح
في الكود في هذا المقطع أظن في شيء وقع سهوا
مكتوب في الكود في هذا المقطع
public void deleteAllWords(){
new DeleteAsyncTask(wordsDao).execute();
}
سؤالي أليس المفروض نكتب
public void deleteAllWords(){
new DeleteAllWordsAsyncTask(wordsDao).execute();
}
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !