Get all information from Android Room Database based on ID

Search This thread

janvankerkveld

New member
Jul 2, 2020
1
0
In database Note have id, title and description. I'm passing id from Mainactivity in to the NoteInfoActivity and into the NoteInfoActivity I'd like to get title and description from room database based on that id. What should I add into the NoteInfoActivity? Your help will be appreciated.

NoteDao

Code:
@Dao
public interface NoteDao {
    @Insert
    void insert(Note note);

    @Update
    void update(Note note);

    @Delete
    void delete(Note note);

    @Query("DELETE FROM note_table")
    void deleteAllNotes();

    @Query("SELECT * FROM note_table ORDER BY priority")
    LiveData<List<Note>> getAllNotes();

    @Query("SELECT * FROM note_table WHERE id =:noteID")
    List<Note> getNote(long noteID);

MainActivity

Code:
public class MainActivity extends AppCompatActivity {

    private NoteViewModel noteViewModel;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        RecyclerView recyclerView = findViewById(R.id.recycler_view);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        recyclerView.setHasFixedSize(true);
        final NoteAdapter adapter = new NoteAdapter();
        recyclerView.setAdapter(adapter);
        noteViewModel = new ViewModelProvider(this).get(NoteViewModel.class);
        noteViewModel.getAllNotes().observe(this, new Observer<List<Note>>() {
            @Override
            public void onChanged(@Nullable List<Note> notes) {
                adapter.setNotes(notes);
            }
        });

        adapter.setOnItemClickListener(new NoteAdapter.OnItemClickListener() {
            @Override
            public void onItemClick(Note note) {

                Intent intent = new Intent(MainActivity.this, NoteInfoActivity.class);
                intent.putExtra("NoteID", note.getId());
                startActivity(intent);
            }
        });
    }
}

NoteInfoActivity

Code:
public class NoteInfoActivity extends AppCompatActivity {

    private static final String TAG = "NoteInfoActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_note_info);

        TextView textViewTitle = findViewById(R.id.textViewNoteTitle);
        TextView textViewPriority = findViewById(R.id.textViewPriority);

        Intent intent = getIntent();

        if (intent != null && intent.hasExtra("NoteID")) {
            long noteID = intent.getIntExtra("NoteID", -1);

            Log.d(TAG, "onCreate: Note Id Is " + noteID);

        } else {
            Toast.makeText(getApplicationContext(), R.string.empty_not_saved, Toast.LENGTH_SHORT).show();
        }
    }
}
 
Last edited: