View difference between Paste ID: PgNeDnXq and
SHOW:
|
|
- or go back to the newest paste.
| 1 | In activity called AttendanceActivity.class, | |
| 2 | ||
| 3 | //methos called in onCreate() | |
| 4 | private void onClickSetAllAttendance() {
| |
| 5 | selectAll.setOnCheckedChangeListener(new OnCheckedChangeListener() {
| |
| 6 | ||
| 7 | @Override | |
| 8 | public void onCheckedChanged(CompoundButton buttonView, | |
| 9 | boolean isChecked) {
| |
| 10 | if (selectAll.isChecked()) {
| |
| 11 | InteractiveArrayAdapter.check_all_status = 1; | |
| 12 | listAdapter.notifyDataSetChanged(); | |
| 13 | } else {
| |
| 14 | InteractiveArrayAdapter.check_all_status = 0; | |
| 15 | listAdapter.notifyDataSetChanged(); | |
| 16 | } | |
| 17 | } | |
| 18 | }); | |
| 19 | ||
| 20 | } | |
| 21 | ||
| 22 | ||
| 23 | My adapter class--- | |
| 24 | ------------------------- | |
| 25 | /* | |
| 26 | * Here in this adapter I am taking "SelectAll" chekbox's status as check_all_status. It will assign according to conditions | |
| 27 | * In getview() i am calling a function called mCheckSelectedSize() to check whether all checkboxes are selected or not | |
| 28 | * according to returned value from mCheckSelectedSize() within onCheckedChanged() I am cheking condition and assigning the values to | |
| 29 | * check_all_status and check / uncheck to SelectAll checkbox | |
| 30 | */ | |
| 31 | ||
| 32 | public class InteractiveArrayAdapter extends ArrayAdapter<Model> {
| |
| 33 | ||
| 34 | private final List<Model> listModel; | |
| 35 | private final Activity context; | |
| 36 | private TextView text; | |
| 37 | private CheckBox checkbox, selectAll; | |
| 38 | public static int check_all_status= -1; | |
| 39 | ||
| 40 | public InteractiveArrayAdapter(Activity context, List<Model> list, CheckBox selectAll){
| |
| 41 | super(context, R.layout.list_items_attendance_payment, list); | |
| 42 | this.context = context; | |
| 43 | this.listModel = list; | |
| 44 | this.selectAll= selectAll; | |
| 45 | } | |
| 46 | ||
| 47 | @Override | |
| 48 | public View getView( int position, View convertView, ViewGroup parent) {
| |
| 49 | View view = convertView; | |
| 50 | if (convertView == null) {
| |
| 51 | LayoutInflater inflator = context.getLayoutInflater(); | |
| 52 | view = inflator.inflate(R.layout.list_items_attendance_payment, null); | |
| 53 | } | |
| 54 | ||
| 55 | final Model obj = listModel.get(position); | |
| 56 | if(obj!=null){
| |
| 57 | text = (TextView) view.findViewById(R.id.name); | |
| 58 | checkbox = (CheckBox) view.findViewById(R.id.check); | |
| 59 | ||
| 60 | if(text!=null){
| |
| 61 | text.setText(listModel.get(position).getName()+" (No :"+listModel.get(position).getmNumber()+")"); | |
| 62 | } | |
| 63 | if(checkbox!=null){
| |
| 64 | ||
| 65 | ||
| 66 | checkbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
| |
| 67 | ||
| 68 | @Override | |
| 69 | public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
| |
| 70 | obj.setSelected(isChecked); | |
| 71 | ||
| 72 | boolean isAllCheckSelected = (mCheckSelectedSize()==listModel.size()); | |
| 73 | if((isAllCheckSelected && isChecked)||(check_all_status == 1 && isChecked)){
| |
| 74 | selectAll.setChecked(true); | |
| 75 | check_all_status=1; | |
| 76 | } | |
| 77 | else if(mCheckSelectedSize()==0||check_all_status ==1){
| |
| 78 | selectAll.setChecked(false); | |
| 79 | check_all_status=-1; | |
| 80 | } | |
| 81 | ||
| 82 | } | |
| 83 | ||
| 84 | private int mCheckSelectedSize() {
| |
| 85 | int k=0; | |
| 86 | ||
| 87 | for (int i = 0; i < listModel.size(); i++) {
| |
| 88 | ||
| 89 | if(listModel.get(i).getSelected()){
| |
| 90 | k ++; | |
| 91 | } | |
| 92 | } | |
| 93 | return k; | |
| 94 | } | |
| 95 | }); | |
| 96 | ||
| 97 | ||
| 98 | if (check_all_status==1 ) {
| |
| 99 | checkbox.setChecked(true); | |
| 100 | obj.setSelected(true); | |
| 101 | } | |
| 102 | else if(check_all_status==0){
| |
| 103 | listModel.get(position).setSelected(false); | |
| 104 | checkbox.setChecked(false); | |
| 105 | obj.setSelected(false); | |
| 106 | ||
| 107 | } | |
| 108 | else | |
| 109 | checkbox.setChecked(listModel.get(position).getSelected()); | |
| 110 | } | |
| 111 | } | |
| 112 | return view; | |
| 113 | } | |
| 114 | } | |
| 115 | ||
| 116 |