簡體   English   中英

如何使用按鈕從 firebase 列表適配器和 firebase 中刪除項目

[英]How to delete item from firebase list adapter and firebase using button

我有一個從 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 加載,但我希望能夠使用此按鈕刪除從列表視圖和 firebase 數據庫中刪除項目。 我做了研究,只找到了點擊項目而不是使用按鈕的方法,一個例子是這個Android 工作室從列表視圖和 firebase 中刪除項目,但我不知道如何將原理應用於與數據庫中的項目關聯的按鈕. 請提供幫助

下面是我的適配器的代碼 class public class 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;
     }

  } 

您可以在適配器內執行此操作

// 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
        }
    }
}

我發現了如何解決我的問題。 我只是將其添加到單擊方法的刪除按鈕中。

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

} });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM