繁体   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