I want to retrieve data from Firebase and display it in an EditText and allow the user make changes to it if the need arises
This is an android note app using Firebase as the database
I want to retrieve data from Firebase and display it in an EditText and allow the user make changes to it if the need arises.
public class HomeActivity extends AppCompatActivity {
private Toolbar mToolbar;
private FloatingActionButton mFABCreate;
private FirebaseAuth mFirebaseAuth;
private RecyclerView mRecyclerView;
private DatabaseReference mDatabaseReference;
String mPost_Key;
String mKey;
String mTitle;
String mNote;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
mFirebaseAuth = FirebaseAuth.getInstance();
FirebaseUser lFirebaseUser = mFirebaseAuth.getCurrentUser();
assert lFirebaseUser != null;
String uid = lFirebaseUser.getUid();
mDatabaseReference = FirebaseDatabase.getInstance().getReference().child("AllData").child(uid);
mDatabaseReference.keepSynced(true);
mRecyclerView = findViewById(R.id.recycler);
LinearLayoutManager lLinearLayoutManager = new LinearLayoutManager(this);
lLinearLayoutManager.setStackFromEnd(true);
lLinearLayoutManager.setReverseLayout(true);
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setLayoutManager(lLinearLayoutManager);
mToolbar = findViewById(R.id.toolbar);
mToolbar.setTitle("Quick Note");
FloatingActionButton fab = findViewById(R.id.Add_Data);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
startActivity(new Intent(HomeActivity.this, AddActivity.class));
}
});
}
@Override
protected void onStart() {
super.onStart();
FirebaseRecyclerAdapter<Items, RecyclerViewAdapter> lAdapter = new FirebaseRecyclerAdapter<Items, RecyclerViewAdapter>(
Items.class,
R.layout.show_note,
RecyclerViewAdapter.class,
mDatabaseReference) {
@Override
protected void populateViewHolder(RecyclerViewAdapter recyclerViewAdapter, final Items items, final int i) {
recyclerViewAdapter.setTitle(items.getTitle());
recyclerViewAdapter.setNote(items.getNote());
recyclerViewAdapter.setDate(items.getDate());
recyclerViewAdapter.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mPost_Key = getRef(i).getKey();
mTitle = items.getTitle();
mNote = items.getNote();
editData();
}
});
}
};
mRecyclerView.setAdapter(lAdapter);
}
private void editData(){
startActivity(new Intent(getApplicationContext(), EditActivity.class));
}
public static class RecyclerViewAdapter extends RecyclerView.ViewHolder{
View mView;
public RecyclerViewAdapter(@NonNull View itemView) {
super(itemView);
mView = itemView;
}
public void setTitle (String title){
TextView lTitle = mView.findViewById(R.id.showTitle);
lTitle.setText(title);
}
public void setNote (String note){
TextView lNote = mView.findViewById(R.id.showNote);
lNote.setText(note);
}
public void setDate (String date){
TextView lDate = mView.findViewById(R.id.showDate);
lDate.setText(date);
}
}
}
public class EditActivity extends AppCompatActivity {
private FirebaseAuth mAuth;
private DatabaseReference mDatabaseReference;
private FirebaseDatabase mFirebaseDatabase;
RecyclerView mRecyclerView;
String mPost_Key;
String mTitle, mNote;
String lTitleFire;
String lNoteFire;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
final EditText lTitle = findViewById(R.id.YourTitleEdit);
final TextView lNote = findViewById(R.id.Your_Note_Add);
mAuth = FirebaseAuth.getInstance();
mFirebaseDatabase = FirebaseDatabase.getInstance();
mDatabaseReference = mFirebaseDatabase.getReference(mAuth.getUid());
mDatabaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Items lGetValues = dataSnapshot.getValue(Items.class);
assert lGetValues != null;
lTitle.setText(lGetValues.getTitle());
lNote.setText(lGetValues.getNote());
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText(getApplicationContext(), "Getting value failed", Toast.LENGTH_LONG).show();
}
});
}
}
public class Items {
String title;
String note;
String date;
String id;
public Items() {
}
public Items(String title, String note, String date, String id) {
this.title = title;
this.note = note;
this.date = date;
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
Firebase data:
AllData
nakrU3ArQNShLzyn9U8X9fAFNeL2
-LopLNpUFmepM8gvCmHS
date:
id:
note:
title:
My aim is to set the values gotten from Firebase and display it into the "EditActivity"