Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Firebase MultiSelect从ListView中删除_Android_Listview_Firebase_Firebase Realtime Database_Firebaseui - Fatal编程技术网

Android Firebase MultiSelect从ListView中删除

Android Firebase MultiSelect从ListView中删除,android,listview,firebase,firebase-realtime-database,firebaseui,Android,Listview,Firebase,Firebase Realtime Database,Firebaseui,我目前正在从Firebase中提取数据,并将其放在列表视图中,一切正常 该应用程序是一个决定性的轮子,我需要让用户根据他们的个人喜好添加和删除一些选择 他们将能够在列表视图中选择多个项目,然后一次删除所有项目。我还没有在网上找到任何对我有任何意义的方法 public class RestaurantSelectionList extends Fragment { DatabaseReference mRootRef = FirebaseDatabase.getInstance().getRef

我目前正在从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;
}

 }
公共类RestaurantSelectionList扩展了片段{
DatabaseReference mRootRef=FirebaseDatabase.getInstance().getReference();
DatabaseReference mRestReference=mRootRef.child(“餐厅”);
Listlistofrest=新的ArrayList();
ListView餐厅ListView;
ListAdapter restaurantListAdapter;
公共餐厅选择列表(){}
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图=充气机。充气(右布局。餐厅\选择\列表\框架,容器,错误);
restaurantListView=(ListView)view.findViewById(R.id.restaurantListView);
restaurantListAdapter=新的FirebaseListAdapter(getActivity(),Restaurants.class,R.layout.individual_restaurant_name,mreReference){
@凌驾
受保护的空心填充视图(视图v、餐厅模型、内部位置){
TextView restName=(TextView)v.findviewbyd(R.id.restName);
restName.setText(model.getName());
添加(position,model.getName());
}
};
setAdapter(restaurantListAdapter);
restaurantListView.setChoiceMode(ListView.CHOICE\u MODE\u MULTIPLE);
restaurantListView.setItemsCanFocus(false);
restaurantListView.setOnItemClickListener(新的AdapterView.OnItemClickListener()
{
@凌驾
公共无效onItemClick(AdapterView AdapterView、View视图、int i、long l){
Toast.makeText(getActivity(),“clicked”,Toast.LENGTH_SHORT.show();
}
});
返回视图;
}
}
这就是我的列表视图,我想知道这是否可以用Firebase完成?这是我第一次与Firebase合作,到目前为止,它给我带来了很多问题。这是显示的列表:


我将
设置单击Listener
复选框。

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