when click on check all button all checkboxes of listview should be checked
public class MainActivity extends Activity {
private ListView mToDoListView;
private SqlHandler mSqlHandler;
private CustomListAdapter mToDoListAdapter;
private ArrayList<ToDoItems> mToDoList;
private Button mDeleteButton;
private CheckBox mCheckBox;`enter code here`
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_to_do);
mSqlHandler = new SqlHandler(this);
mToDoListView = (ListView) findViewById(R.id.list_items);
mDeleteButton = (Button) findViewById(R.id.delete_button);
showList();
mToDoListAdapter = new CustomListAdapter(MainActivity.this, mToDoList);
mToDoListView.setAdapter(mToDoListAdapter);
/** Defining checkbox click event listener **/
OnClickListener clickListener = new OnClickListener() {
@Override
public void onClick(View v) {
CheckBox chk = (CheckBox) v;
int itemCount = mToDoListView.getCount();
for (int i = 0; i < itemCount; i++) {
mToDoListView.setItemChecked(i, chk.isChecked());
}
}
};
/** Defining click event listener for the listitem checkbox */
OnItemClickListener itemClickListener = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
CheckBox chk = (CheckBox) findViewById(R.id.chkAll);
int checkedItemCount = getCheckedItemCount();
if (mToDoListView.getCount() == checkedItemCount)
chk.setChecked(true);
else
chk.setChecked(false);
}
};
/** Getting reference to checkbox available in the main.xml layout */
CheckBox chkAll = (CheckBox) findViewById(R.id.chkAll);
/** Setting a click listener for the checkbox **/
chkAll.setOnClickListener(clickListener);
/** Setting a click listener for the listitem checkbox **/
mToDoListView.setOnItemClickListener(itemClickListener);
}
/**
*
* Returns the number of checked items
*/
private int getCheckedItemCount() {
int cnt = 0;
SparseBooleanArray positions = mToDoListView.getCheckedItemPositions();
int itemCount = mToDoListView.getCount();
for (int i = 0; i < itemCount; i++) {
if (positions.get(i))
cnt++;
}
return cnt;
}
public void showList() {
mToDoList = new ArrayList<ToDoItems>();
mToDoList.clear();
Cursor c1 = mSqlHandler.selectQuery();
if (c1 != null && c1.getCount() != 0) {
if (c1.moveToFirst()) {
do {
ToDoItems toDoListItems = new ToDoItems();
toDoListItems.setmTaskDetails(c1.getString(c1
.getColumnIndex("taskDetails")));
toDoListItems.setmDate(c1.getString(c1
.getColumnIndex("date")));
mToDoList.add(toDoListItems);
} while (c1.moveToNext());
}
}
c1.close();
}
custom adapter need any changes or not public class CustomListAdapter extends BaseAdapter {
private Context mContext;
private ArrayList<ToDoItems> mToDoList;
public CustomListAdapter(Context context, ArrayList<ToDoItems> list) {
this.mContext = context;
this.mToDoList = list;
}
@Override
public int getCount() {
return mToDoList.size();
}
@Override
public Object getItem(int position) {
return mToDoList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
private static class ViewHolder {
TextView taskAddedDate;
TextView taskName;
CheckBox checkBox;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ToDoItems toDoListItems = mToDoList.get(position);
ViewHolder viewHolder = null;
if (convertView == null) {
viewHolder = new ViewHolder();
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.list_row, null);
viewHolder = new ViewHolder();
viewHolder.taskName = (TextView) convertView
.findViewById(R.id.todo_task);
viewHolder.taskAddedDate = (TextView) convertView
.findViewById(R.id.todo_date);
viewHolder.checkBox = (CheckBox) convertView
.findViewById(R.id.item_checkBox);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.taskName.setText(toDoListItems.getmTaskDetails());
viewHolder.taskAddedDate.setText(toDoListItems.getmDate());
return convertView;
}
}
Aucun commentaire:
Enregistrer un commentaire