Firebase MultiSelect 从 ListView 中删除
Firebase MultiSelect Delete from ListView
我目前正在从 Firebase 中提取数据并将其放入列表视图中,一切正常。
App是一个决定性的轮子,我需要让用户根据自己的喜好添加和删除一些选择。
他们将能够 select 列表视图中的多个项目,然后一次性删除所有项目。我还没有找到任何对我有意义的在线方法。
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,到目前为止它给我带来了很多问题。这是显示的列表:
我会setOnClickListener
勾选复选框。
初始化一个全局 hashMap()
。选中某个项目时,将该项目 ID 放入 hashMap()
,如果未选中,则从 hashMap()
中删除该项目 ID。然后获取要更新的节点的引用,执行updateChildren()
方法,将对应的Item ID的值设置为null
.
我目前正在从 Firebase 中提取数据并将其放入列表视图中,一切正常。
App是一个决定性的轮子,我需要让用户根据自己的喜好添加和删除一些选择。
他们将能够 select 列表视图中的多个项目,然后一次性删除所有项目。我还没有找到任何对我有意义的在线方法。
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,到目前为止它给我带来了很多问题。这是显示的列表:
我会setOnClickListener
勾选复选框。
初始化一个全局 hashMap()
。选中某个项目时,将该项目 ID 放入 hashMap()
,如果未选中,则从 hashMap()
中删除该项目 ID。然后获取要更新的节点的引用,执行updateChildren()
方法,将对应的Item ID的值设置为null
.