我有一个从 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/