Как отобразить тост, только если строка была удалена в базе данных ROOM? - PullRequest
1 голос
/ 20 июня 2019

Я хочу отображать тост только в том случае, если строка успешно удалена из базы данных ROOM, а также в том случае, если удаление не удалось.

Строка успешно удаляется, но я хочу, чтобы тост отображался как в случае успешного, так и в случае неудачного завершения.ситуации.

MainActivity

String enroll = et_enroll.getText().toString().trim();
                MainActivity.studentDatabase.daoAccess().deleteStudent(enroll);

Файл Dao

@Query("Delete from Student where enroll like :enrollment")
    void deleteStudent(String enrollment);

Отображение тоста при удачном и неудачном удалении

Ответы [ 4 ]

1 голос
/ 20 июня 2019
@Query("Delete from Student where enroll like :enrollment")
void deleteStudent(String enrollment);

Change return type of method "deleteStudent" to int.
i.e:
@Query("Delete from Student where enroll like :enrollment")  
int deleteStudent(String enrollment); 

This will return number of rows affected.So if number of rows affected > 0 deletion 
is success or is failed. 

////

String enroll = et_enroll.getText().toString().trim();
int rows_affected = MainActivity.studentDatabase.daoAccess().deleteStudent(enroll);

if (rows_affected > 0) {
Toast.makeText(Delete.this, "Deleted", Toast.LENGTH_SHORT).show();

} else {

Toast.makeText(Delete.this, "Unsuccessfull", Toast.LENGTH_SHORT).show();
}

\\

0 голосов
/ 20 июня 2019

U можно использовать

try {
    String enroll = et_enroll.getText().toString().trim();
    MainActivity.studentDatabase.daoAccess().deleteStudent(enroll);
    Toast.makeText(context, "Successfully text", Toast.LENGTH_SHORT).show();
} catch (Throwable error) {
    Toast.makeText(context, "Failed text", Toast.LENGTH_SHORT).show();
}

блокировать или использовать RxJava с переопределениями методов подписки onSuccess () и onError ()

0 голосов
/ 20 июня 2019
try {
  MainActivity.studentDatabase.daoAccess().deleteStudent(enroll);
  Toast.makeText(context, "Student Deleted Successfully", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
  Toast.makeText(context, "Student Deletion failed", Toast.LENGTH_SHORT).show();
}
0 голосов
/ 20 июня 2019

Оберните его на try-catch:

try {
  MainActivity.studentDatabase.daoAccess().deleteStudent(enroll);
  Toast.makeText(context, "Deleted successfully", Toast.LENGTH_SHORT).show();
} catch (SQLException e) {
  Toast.makeText(context, "Delete failed", Toast.LENGTH_SHORT).show();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...