Я пытаюсь разработать это небольшое приложение для выполнения операций CRUD с использованием Room
, Repository
, LiveData
, ViewModel
и Listview
, если вы хотите увидеть разработку приложения или строку коммитаJava, здесь, в этом моем репозитории github
Исходное приложение, которое называется Pets at , в оригинальном репозитории Pets разработано с использованием ContentProvider
и ContentResolver
вподкласс SQLiteOpenHelper
в Android с Java
вопрос
Небольшое приложение для Android в Java для выполнения операций CRUD Room
, Repository
, LiveData
и ViewModel
и Listview
, как вернуть количество удаленных строк из Dao
и AsyncTask
в репозитории через ViewModel
обратно в CatalogActivity
?
Это то, что в PetDao.java
@Query("DELETE FROM pets")
int deleteAllPets();
Это то, что в PetRepository.java
// this class is inside repository
private static class DeleteAllPetsAsyncTask extends AsyncTask<Void, Void, Integer>
{
private PetDao petDaoOfDeleteAllAsyncTask;
DeleteAllPetsAsyncTask(PetDao petDao)
{
this.petDaoOfDeleteAllAsyncTask = petDao;
}
@Override
protected Integer doInBackground(Void... voids)
{
int countOfDeletedRows = this.petDaoOfDeleteAllAsyncTask.deleteAllPets();
return countOfDeletedRows;
}
/**
* <p>Runs on the UI thread after {@link #doInBackground}. The
* specified result is the value returned by {@link #doInBackground}.</p>
*
* <p>This method won't be invoked if the task was cancelled.</p>
*
* @param integer The result of the operation computed by {@link #doInBackground}.
* @see #onPreExecute
* @see #doInBackground
* @see #onCancelled(Object)
*/
@Override
protected void onPostExecute(Integer integer) {
//super.onPostExecute(integer);
// TODO: how to return this integer
}
}
// this function is inside repository
public void deleteAllPets()
{
new DeleteAllPetsAsyncTask(this.petDao).execute();
}
Это то, что в PetViewModel.java
public void deleteAllPets()
{
this.petRepository.deleteAllPets();
}
Это то, что в CatalogActivity.java
private void deleteAllPets() {
// TODO: Implement this method
//
Log.v(this.LOG_TAG, "rows deleted from pet database count is: ");
this.petViewModel.deleteAllPets();
// Show a toast message depending on whether or not the delete was successful.
if (0 == 0) {
// If no rows were deleted, then there was an error with the delete.
Toast.makeText(this, super.getString(R.string.catalog_delete_all_pets_failed) +
" ", Toast.LENGTH_LONG).show();
} else {
// Otherwise, the delete was successful and we can display a toast.
Toast.makeText(this, super.getString(R.string.catalog_delete_all_pets_successful) +
" ", Toast.LENGTH_LONG).show();
}
// Close the activity
//super.finish();
}
Я также жду ответа от @EpicPandaForce
Большое спасибо