当单击列表视图项时,如何更改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),因此可以正常工作。但是,当我单击一项时,如何在应用程序中做同样的事情?
答案 0 :(得分:1)
在您的onItemClick()
方法内,添加以下代码行:
String key = arrayAdapter.getItem(i).getKey();
yourRef.child(key).setValue(true);
这是设置true
的示例。如果要将其设置为false
,请使用:
yourRef.child(key).setValue(false);