2016-12-09 21 views
0

Я в настоящее время вытаскиваю данные из Firebase и помещаю их в список, и все, что работает нормально.Firebase MultiSelect Удалить из ListView

Приложение - решающее колесо, и я должен позволить пользователям добавлять и удалять некоторые варианты, исходя из их личных предпочтений.

Они смогут выбирать несколько элементов в виде списка, а затем удалять их все сразу. Я не нашел никакого способа сделать это в Интернете, что имело какой-либо смысл для меня вообще.

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

ответ

2

Я бы setOnClickListener с флажком.
Инициализировать глобальный hashMap(). Когда элемент проверен, поместите этот идентификатор товара в hashMap(), если он снят, удалите идентификатор товара с hashMap(). Затем возьмите ссылку узла, который хотите обновить, выполните метод updateChildren(), установив соответствующее значение Item ID на null.