在firebase中的listviewitems上更改布尔值

时间:2018-12-13 17:00:22

标签: android firebase-realtime-database android-listview

当单击列表视图项时,如何更改Firebase中的布尔值?

我在MainActivity中的setOnItemClick

listitem.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {


        }
    });

适配器:

public class listItems extends ArrayAdapter<Items> {

private Activity context;
private List<Items> listitems;



public listItems(Activity context, List<Items> listitems){
    super (context, R.layout.list_items, listitems);
    this.context = context;
    this.listitems = listitems;

}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
    LayoutInflater inflater = context.getLayoutInflater();


    View listViewItem = inflater.inflate(R.layout.list_items, null, true);

    CheckedTextView tvitems = (CheckedTextView) listViewItem.findViewById(R.id.fetch_image_title);



    Items items = listitems.get(position);

    tvitems.setText(items.getItemname());

    tvitems.setChecked(items.isChecked);




    return listViewItem;
}

如果我更改Firebase中的值,它也会在我的应用程序中更改(从true到false),因此可以正常工作。但是,当我单击一项时,如何在应用程序中做同样的事情?

1 个答案:

答案 0 :(得分:1)

在您的onItemClick()方法内,添加以下代码行:

String key = arrayAdapter.getItem(i).getKey();
yourRef.child(key).setValue(true);

这是设置true的示例。如果要将其设置为false,请使用:

yourRef.child(key).setValue(false);