2016-12-09 8 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

IだろうsetOnClickListener:これが示されているリストです。
グローバルhashMap()を初期化します。アイテムがチェックされている場合は、そのアイテムIDをhashMap()に入力します。チェックを外すと、アイテムIDがhashMap()から削除されます。次に更新するノードの参照を取り、対応するアイテムIDの値をnullに設定してupdateChildren()メソッドを実行します。

関連する問題