Как удалить элемент из списка FireBase и FireBase с помощью кнопки - PullRequest
0 голосов
/ 10 октября 2019

У меня есть действие, которое считывает данные из базы данных Firebase и отображает данные в адаптере списка Firebase. Каждый элемент в представлении списка имеет 2 редактируемых текста и кнопку для удаления элемента как из представления списка, так и из базы данных Firebase. Ниже приведен код для отображения адаптера списка Firebase

      adapter =new FirebaseListAdapter <TravelDetails>
   ( options){
  protected void populateView(View v, TravelDetails model, int position) {
Button delete=(Button)v.findViewById(R.id.button_accept);
final TextView z=(TextView)v.findViewById(R.id.dropoff);
final TextView text=(TextView)v.findViewById(R.id.txref);
text.setText(model.getTxt_Ref());
 z.setText(model.getDropoffspot());
 delete.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View v) {.....

Представление списка работает нормально. Данные загружаются из firebase, но я хочу иметь возможность использовать эту кнопку delete для удаления элементов как из списка, так и из базы данных firebase. Я исследовал и нашел только способы нажатия на элемент без использования кнопки, например, Android-студия удаляет элементы как из списка, так и из базы , но я не знаю, как применить принцип к связанной кнопкес предметом из базы данных. Пожалуйста, помогите

Ниже приведен код моего класса адаптера публичного класса TravelDetails {

    private String dropoffspot;
    private String txt_Ref;

    public TravelDetails(){

    }


    public String getDropoffspot(){
    return dropoffspot;
     }
    public void setDropoffspot(String dropoffspot){
    this.dropoffspot=dropoffspot;
    }

    public String getTxt_Ref() {
    return txt_Ref;
    }

       public void setTxt_Ref(String txt_Ref) {
       this.txt_Ref = txt_Ref;
     }

  } 

Ответы [ 2 ]

1 голос
/ 10 октября 2019

Вы можете сделать это внутри своего адаптера

// make this function inside your adapter

protected void populateView(View v, ArrayList<TravelDetails> models, final int position) {
    Button delete=(Button)v.findViewById(R.id.button_accept);
    final TextView z=(TextView)v.findViewById(R.id.dropoff);
    final TextView text=(TextView)v.findViewById(R.id.txref);
    text.setText(model.getTxt_Ref());
    z.setText(model.getDropoffspot());
    delete.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // code to delete from firebase
            models.remove(position); // delete from adapter array list
            notifyDataSetChanged(); // refresh adapter
        }
    }
}
0 голосов
/ 10 октября 2019

Я узнал, как решить мою проблему. Я просто добавляю это в кнопки удаления по методу клика.

         public void onClick(View v) {
         DatabaseReference item=adapter.getRef(position) ;
         item.removeValue();

}});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...