1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
| package flyzzx.logistikv2.fragments;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.SparseBooleanArray;
import android.view.ActionMode;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
import flyzzx.logistikv2.R;
import flyzzx.logistikv2.customviews.ListViewCAB;
public class ListViewCabFragment extends Fragment implements AbsListView.MultiChoiceModeListener {
ListView list = null;
ArrayList<String> data = null;
ArrayAdapter<String> adapter = null;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.listviewcab_fragment, container, false);
list = (ListView) view.findViewById(R.id.listView_expe);
Initialize();
return view;
}
public void add(String data) {
adapter.add(data);
adapter.notifyDataSetChanged();
}
private void Initialize() {
data = new ArrayList<>();
adapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_list_item_multiple_choice, data);
list.setAdapter(adapter);
list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
list.setMultiChoiceModeListener(this);
}
private void removeSelected() {
SparseBooleanArray checkeditems = list.getCheckedItemPositions();
for(int i = list.getCount() - 1; i >= 0; i--) {
if(checkeditems.get(i)) {
adapter.remove(data.get(i));
}
}
adapter.notifyDataSetChanged();
checkeditems.clear();
}
@Override
public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
mode.setTitle(list.getCheckedItemCount() + " item(s) sélectionné(s)");
}
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
MenuInflater inflater = mode.getMenuInflater();
inflater.inflate(R.menu.menu_cab, menu);
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch(item.getItemId()) {
case R.id.menucab_delete:
removeSelected();
mode.finish();
break;
}
return true;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
}
} |
Partager