In this android programming source code example, we are going to delete a row in Android Room Database.
You can copy and adopt this source code example to your android project without reinventing the wheel.
Below is a step by step source code to delete a row in Android Room Database.
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="15dp"> <android.support.design.widget.TextInputLayout android:id="@+id/nameinput" android:layout_width="match_parent" android:layout_height="wrap_content"> <EditText android:id="@+id/name" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/name" android:inputType="textNoSuggestions" android:maxLines="1" android:singleLine="true" /> </android.support.design.widget.TextInputLayout> <Button android:id="@+id/deleteBtn" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/colorAccent" android:layout_below="@id/nameinput" android:textColor="#ffffff" android:text="Delete"/> </RelativeLayout>
MainActivity.java
import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import io.reactivex.Completable; import io.reactivex.CompletableObserver; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; import io.reactivex.functions.Action; import io.reactivex.schedulers.Schedulers; public class RoomDatabaseActivity3 extends AppCompatActivity { private EditText name; private Button delete; private UserDatabase userDatabase; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_room_database3); name = (EditText) findViewById(R.id.name); delete = (Button) findViewById(R.id.deleteBtn); userDatabase = UserDatabase.getInstance(this); delete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String enteredname = name.getText().toString(); deleteUser(enteredname); } }); } private void deleteUser(final String ename){ Completable.fromAction(new Action() { @Override public void run() throws Exception { User user = new User(1, ename); userDatabase.userDAO().delete(user); } }).observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io()) .subscribe(new CompletableObserver() { @Override public void onSubscribe(Disposable d) { } @Override public void onComplete() { Toast.makeText(RoomDatabaseActivity3.this, "Data deleted successfully",Toast.LENGTH_LONG).show(); } @Override public void onError(Throwable e) { Toast.makeText(RoomDatabaseActivity3.this, "Data not deleted",Toast.LENGTH_LONG).show(); } }); } }
UserDatabase.java
import android.arch.persistence.db.SupportSQLiteDatabase; import android.arch.persistence.room.Database; import android.arch.persistence.room.Room; import android.arch.persistence.room.RoomDatabase; import android.content.Context; import android.support.annotation.NonNull; import java.util.concurrent.Executors; @Database(entities = { User.class }, version = 1, exportSchema = false) public abstract class UserDatabase extends RoomDatabase { private static final String DB_NAME ="UserDb"; private static UserDatabase instance; public abstract UserDAO userDAO(); public synchronized static UserDatabase getInstance(final Context context) { if (instance == null) { instance = Room.databaseBuilder(context, UserDatabase.class, DB_NAME) .allowMainThreadQueries().build(); } return instance; } }
User.java
import android.arch.persistence.room.ColumnInfo; import android.arch.persistence.room.Entity; import android.arch.persistence.room.Ignore; import android.arch.persistence.room.PrimaryKey; @Entity(tableName = "users") public class User { @PrimaryKey(autoGenerate = true) private int id; @ColumnInfo(name = "name") private String name; public User(int id, String name){ this.id = id; this.name = name; } @Ignore public User(String name){ this.name = name; } public int getId() { return id; } public String getName() { return name; } }
UserDAO.java
import android.arch.persistence.room.Dao; import android.arch.persistence.room.Delete; import android.arch.persistence.room.Insert; import android.arch.persistence.room.Query; import android.arch.persistence.room.Update; import java.util.ArrayList; import java.util.List; @Dao public interface UserDAO { @Query("select * from users") List<User> getuserList(); @Insert public void insert(User user); @Update public void update(User user); @Delete public void delete(User user); }
build.gradle
implementation 'io.reactivex.rxjava2:rxjava:2.1.9' implementation 'io.reactivex.rxjava2:rxandroid:2.0.1' implementation 'android.arch.persistence.room:runtime:1.0.0' annotationProcessor 'android.arch.persistence.room:compiler:1.0.0'
If you have any question or suggestions kindly use the comment box or you can contact us directly through our contact page below.