java - 如何使用按钮从 firebase 列表适配器和 firebase 中删除项目

标签 java android firebase-realtime-database

我有一个从 Firebase 数据库读取数据并在 Firebase 列表适配器中显示数据的 Activity 。 ListView 中的每个项目都有 2 个编辑文本和一个用于从 ListView 和 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) {.....

ListView 工作正常。数据是从 firebase 加载的,但是 我希望能够使用此按钮删除来从 ListView 和 firebase 数据库中删除项目。我做了研究,只找到了点击项目而不使用按钮的方法,一个例子是这个 Android studio remove items from both listview and firebase但我不知道如何将原理应用到与数据库中的项目关联的按钮。请提供帮助

下面是我的适配器类的代码 公共(public)类 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
        }
    }
}

关于java - 如何使用按钮从 firebase 列表适配器和 firebase 中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58312344/

相关文章:

firebase-realtime-database - 在 Firebase 中,如何检查用户是否具有对数据库的写访问权限?或者如何限制用户访问数据库?

java - Midlets执行问题

android - 在自定义样式中未应用属性 "android:textSize"

android - 需要一个 Android 中的 HttpResponseCache 的例子

android - 将文本设置为 textView

javascript - 如何删除 Firebase 中的数据?

java - HashMap(键 : String, 值 : ArrayList) returns an Object instead of ArrayList?

java - 在 Java 中将 session 值附加到数组

java - 所有接口(interface)的父类(super class)

firebase - 从 firebase 渲染 FlatList 中的数据