-1

I am working on an Android Application that store the medicine along with Expiry Date like this

the data stored perfectly; Now What I want to do is delete a particular data by a date. I am new to Android and have searched videos but the Tutorial I got seems difficult for me to understand. I can view the data from Firebase in android but now I want to delete It. I have searched on Stack Overflow this and this

My code to retreive data is

public class RetreiveActivity extends AppCompatActivity {
ListView mylistView;
DatabaseReference db;
List<ClassMedicine> medicineList;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_retreive);
    mylistView= findViewById(R.id.mylist);
    medicineList= new ArrayList<>();
    db= FirebaseDatabase.getInstance().getReference("medicines");
}

@Override
protected void onStart() {
    super.onStart();
    db.addValueEventListener(new ValueEventListener() {


        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            medicineList.clear();
            for (DataSnapshot medicineSnapshot:dataSnapshot.getChildren()){
                ClassMedicine classMedicine=medicineSnapshot.getValue(ClassMedicine.class);
                medicineList.add(classMedicine);
            }
            MedicineList adapter=new MedicineList(RetreiveActivity.this,medicineList);
            mylistView.setAdapter(adapter);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
}

}

My code to save data is

public class MedicineActivity extends AppCompatActivity {
EditText MedicineName,MedicineUsage;
TextView ExpiryDate;
Spinner spinnerSelectCompany;
Button MedicinesAddition;
DatabaseReference databaseMedicines;
DatePickerDialog datePickerDialog;
Calendar calendar;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_medicine);
    MedicineName= findViewById(R.id.edt_medicine_name);
    ExpiryDate= findViewById(R.id.tvtdate);
    ExpiryDate.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            FunDate();
        }

        private void FunDate() {
            calendar= Calendar.getInstance();
            int mYear = calendar.get(Calendar.YEAR);
            int mMonth= calendar.get(Calendar.MONTH);
            int mDay= calendar.get(Calendar.DAY_OF_MONTH);
            datePickerDialog= new DatePickerDialog(MedicineActivity.this, R.style.DatPickerDialogTheme, new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                    ExpiryDate.setText(dayOfMonth +"-"+ (month+1) + "-"+year );


                }
            },mYear,mMonth,mDay);
            datePickerDialog.show();
        }
    });
    MedicineUsage= findViewById(R.id.usage);
    spinnerSelectCompany= findViewById(R.id.spinner_company_name);
    MedicinesAddition= findViewById(R.id.btn_add_medicines);
    databaseMedicines = FirebaseDatabase.getInstance().getReference("medicines");
    MedicinesAddition.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            FunAddMedicines();
        }
    });
}
private void FunAddMedicines(){
    String name=MedicineName.getText().toString().trim();
     String mediusage= MedicineUsage.getText().toString().trim();
    String medicinecompanies= spinnerSelectCompany.getSelectedItem().toString();
   String mediDate = ExpiryDate.getText().toString().trim();
    if (name.isEmpty() || mediusage.isEmpty() || medicinecompanies.isEmpty()  ){
        Toast.makeText(this, "Fill all above Fields", Toast.LENGTH_LONG).show();
    }
    else {

        String id = databaseMedicines.push().getKey();
        ClassMedicine classMedicine = new ClassMedicine(id,name,mediusage,medicinecompanies,mediDate);
        databaseMedicines.child(id).setValue(classMedicine);
        Toast.makeText(this, "Medicine Added", Toast.LENGTH_LONG).show();
    }

}

}

Here is the Model Class

public class ClassMedicine {
String medicineId;
String medicineName;
String medicineUsage;
String medicineGenre;
String mediDate;

public ClassMedicine(){
}
public ClassMedicine(String medicineId, String medicineName, String medicineUsage, String medicineGenre,String mediDate) {
    this.medicineId = medicineId;
    this.medicineName = medicineName;
    this.mediDate= mediDate;
    this.medicineUsage = medicineUsage;
    this.medicineGenre = medicineGenre;
}

public String getMedicineId() {
    return medicineId;
}

public String getMedicineName() {
    return medicineName;
}

public String getMedicineUsage() {
    return medicineUsage;
}

public String getMedicineGenre() {
    return medicineGenre;
}
public String getMediDate() {
    return mediDate;
}

I want to do the delete or remove data behind a cardview this this image

1 Answers1

1

Try this code..

mFirebaseDatabase = mFirebaseInstance.getReference("usersDb/UserTable");


mFirebaseDatabase.child("User").removeValue();
            Toast.makeText(getApplicationContext(), "Delete Successfuly", Toast.LENGTH_SHORT).show();

in Adapter add interface for click event..

 onItemClickListner onItemClickListner;

public void setOnItemClickListner(CommentsAdapter.onItemClickListner onItemClickListner) {
    this.onItemClickListner = onItemClickListner;
}

public interface onItemClickListner {
    void onClick(Contact contact);//pass your object types.
}
 @Override
public View getView(final int position, final View convertView, ViewGroup parent) {
    Contact contact=contactList.get(position);
    final LayoutInflater inflater = ((Activity) context).getLayoutInflater();
    final View outerContiner = inflater.inflate(R.layout.table_layout, parent, false);// define your layout
    TextView text = (TextView) outerContiner.findViewById(R.id.tlTvName);
    TextView barcode = (TextView) outerContiner.findViewById(R.id.tlTvBar);

    text.setText(data.get(position).itemName);
    barcode.setText(data.get(position).barcod);
    outerContiner.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            onItemClickListner.onClick(contact);
        }
    });
    return outerContiner;
}

in activity bind adapter into list view then called this code...

 adapter.setOnItemClickListner(new CommentsAdapter.onItemClickListner() {
        @Override
        public void onClick(Contact contact) {
            // here get id and remove into firebase datatabase.
            mFirebaseDatabase = mFirebaseInstance.getReference("usersDb/UserTable");


            mFirebaseDatabase.child("User").removeValue();
            Toast.makeText(getApplicationContext(), "Delete Successfuly", Toast.LENGTH_SHORT).show();


            adapter.notifyDataSetChanged();
        }
    });
  • Thanks for your answer but I wanna know that How this thing is going to implement in my project. Since I am new in the development field of android. –  Aug 17 '18 at 06:57
  • I want to do this behind a cardview –  Aug 17 '18 at 06:58
  • How to do this behind a cardview –  Aug 17 '18 at 06:58
  • 1
    you want to delete record form firebase database or recycler view. –  Aug 17 '18 at 07:00
  • I want to delete a particular data by a date from the cardview button –  Aug 17 '18 at 07:06