Firebase MultiSelect从ListView中删除

时间:2016-12-09 03:43:38

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

我目前正在从Firebase中提取数据并将其放入列表视图中,所有这些工作正常。

该应用程序是一个决定性的轮子,我需要让用户根据个人喜好添加和删除一些选择。

他们将能够在列表视图中选择多个项目,然后一次删除所有项目。我在网上找不到任何对我有任何意义的方法。

public class RestaurantSelectionList extends Fragment {

DatabaseReference mRootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference mRestReference = mRootRef.child("restaurants");

List<String>listofrest = new ArrayList<String>();
ListView restaurantListView;
ListAdapter restaurantListAdapter;



public RestaurantSelectionList(){}

@Override
public View onCreateView(LayoutInflater inflater,  ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.restaurant_selection_list_frag,container,false);
    restaurantListView = (ListView) view.findViewById(R.id.restaurantListView);

    restaurantListAdapter = new FirebaseListAdapter<Restaurants>(getActivity(),Restaurants.class,R.layout.individual_restaurant_name,mRestReference) {
        @Override
        protected void populateView(View v, Restaurants model, int position) {
            TextView restName = (TextView) v.findViewById(R.id.restname);
            restName.setText(model.getName());


            listofrest.add(position,model.getName());

        }
    };

    restaurantListView.setAdapter(restaurantListAdapter);
    restaurantListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    restaurantListView.setItemsCanFocus(false);


    restaurantListView.setOnItemClickListener(new AdapterView.OnItemClickListener()
    {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            Toast.makeText(getActivity(), "clicked", Toast.LENGTH_SHORT).show();
        }
    });
    return view;
}

 }

这是我的列表视图,我想知道是否可以使用Firebase完成此操作?这是我第一次使用Firebase,到目前为止它给我带来了很多问题。这是显示的列表:

List

1 个答案:

答案 0 :(得分:2)

我会setOnClickListener到复选框 初始化全局hashMap()。选中某个项目后,将该项目ID放在hashMap()中,如果未选中,则从hashMap()中删除项目ID。然后获取您想要更新的节点的引用,执行updateChildren()方法,将对应的项ID的值设置为null