android


how to select all checkbox in custom listview from activity in android


I have a custom listview which content two textview and one checkbox. When checkbox is checked then id is stored in the database and if unchecked then id is removed from database. But I want to select all checkboxes and store all ids into database or uncheck all checkboxes and remove all ids from database. What exactly i have to implement for this. please help me this is my adapter code
public class InviteListAdapter2 extends BaseAdapter implements OnClickListener {
private static final String TAG = "GroupEditMemberListAdapter";
private LayoutInflater inflater;
private ViewHolder holder;
private List<FriendItem> list;
private Context context;
private ImageLoader imageLoader;
MessageSendingActivity msg = new MessageSendingActivity();
private String groupId;
SqliteHandle sqhandle;
//private String adminId;
int total_contacts=0;
String f_id;
int flag=0;
String chetimeslot;
ArrayList<String> currentList = new ArrayList<String>();
public static final String DELETE_MEMBER = "2";
public static final String ADD_MEMBER = "1";
public InviteListAdapter2(Context context, List<FriendItem> list, String groupId, String adminId) {
this.context = context;
inflater = LayoutInflater.from(context);
this.list = list;
imageLoader = new ImageLoader(context);
this.groupId = groupId;
//this.adminId = adminId;
}
public ArrayList<String> getChekedItem()
{
if(currentList!=null)
return this.currentList;
else return null;
}
#Override
public int getCount() {
return list.size();
}
#Override
public Object getItem(int position) {
return list.get(position);
}
#Override
public long getItemId(int position) {
return list.indexOf(getItem(position));
}
public void refresh(List<FriendItem> list) {
this.list = list;
notifyDataSetChanged();
}
public List<FriendItem> getList() {
return list;
}
View hView;
ArrayList<CheckedItem> checkbox_timeslot = new ArrayList<CheckedItem>();
#Override
public View getView(final int position, View convertView, ViewGroup parent) {
hView = convertView;
final FriendItem item = list.get(position);
if (convertView == null) {
holder = new ViewHolder();
hView = inflater.inflate(R.layout.friendlistitem, null);
holder.nameTextView = (TextView) hView.findViewById(R.id.friend_name_text);
holder.statusTextView = (TextView) hView.findViewById(R.id.friend_count_text);
holder.userImageView = (ImageView) hView.findViewById(R.id.friend_image);
holder.checkBox = (CheckBox) hView.findViewById(R.id.chekbox);
hView.setTag(holder);
}
else {
holder = (ViewHolder) hView.getTag();
}
try {
holder.nameTextView.setText(""+item.getName() + " " +item.getLname());
holder.statusTextView.setText(""+item.getContacts());
String path = "http://www.gbggoa.org/testproject/four/images/pic.jpg";
path = Constant.URL + item.getImage();
imageLoader.displayImage(path, holder.userImageView);
if(item.getId().equals(Sessions.getUserId(context)))
{
holder.checkBox.setVisibility(View.GONE);
}
else
{
holder.checkBox.setVisibility(View.VISIBLE);
}
if(item.isChecked())
{
holder.checkBox.setChecked(true);
if(item.getId().equals(Sessions.getUserId(context)))
{
hView.setBackgroundResource(R.drawable.selector_list_gray);
}
else
{
hView.setBackgroundResource(R.drawable.selector_list_green);
}
}
else
{
holder.checkBox.setChecked(false);
hView.setBackgroundResource(R.drawable.selector_list);
}
holder.checkBox.setTag(position);
holder.checkBox.setOnClickListener(this);
} catch (Exception e) {
e.printStackTrace();
}
return hView;
}
class ViewHolder
{
TextView nameTextView, statusTextView;
ImageView userImageView;
CheckBox checkBox;
}
protected void showToast(String message) {
Toast.makeText(context, ""+message, Toast.LENGTH_SHORT).show();
}
protected void showToastLong(String message) {
Toast.makeText(context, ""+message, Toast.LENGTH_LONG).show();
}
#Override
public void onClick(View view) {
final int position = (Integer) view.getTag();
String f_id=list.get(position).getId();
final CheckBox checkBox = (CheckBox) view.findViewById(R.id.chekbox);
sqhandle=new SqliteHandle(context);
final boolean isChecked = checkBox.isChecked();
int total=sqhandle.getCheckedCount();
checkBox.setVisibility(View.GONE);
if(isChecked)
{
total_contacts = total_contacts + Integer.parseInt(list.get(position).getContacts());
sqhandle.changeCheck("1", f_id);
Toast.makeText(context, "Selected Contacts: "+total_contacts, Toast.LENGTH_LONG).show();
}
else
{
sqhandle.changeCheck("0", f_id);
total_contacts = total_contacts - Integer.parseInt(list.get(position).getContacts());
Toast.makeText(context, "Selected Contacts: "+total_contacts, Toast.LENGTH_LONG).show();
}
sqhandle.close();
checkBox.setVisibility(View.VISIBLE);
list.get(position).setChecked(isChecked);
notifyDataSetChanged();
}
}
use an ArrayList to store your Items Ids
ArrayList<Integer> tcontact = new ArrayList<Integer>();
if(isChecked)
{
tcontact.add(Integer.parseInt(list.get(position).getContacts()))
sqhandle.changeCheck("1", f_id);
Toast.makeText(context, "Selected Contacts: "+total_contacts, Toast.LENGTH_LONG).show();
}
else
{
for(int i=0;i<tcontact.size;i++) {
if(tcontact.get(i) == Integer.parseInt(list.get(position).getContacts())) {
tcontact.remove(i);
sqhandle.changeCheck("0", f_id);
Toast.makeText(context, "Selected Contacts: "+total_contacts, Toast.LENGTH_LONG).show();
}
}}
Try the following:
Add one checkbox on top of listview in your activity layout. For example a checkbox with id chkall.
Add one boolean flag called checkedAll in your adapter class InviteListAdapter2 with getter & setter.
Create to add/remove from database as follow:
public void modifyFriends(List<FriendItem> fList, boolean checkedAll){
String checkStatus = "0";
if(checkedAll){
checkStatus = "1";
}
//sql code to change check status in database for all friends
}
Change getView() your adapter code little bit as follow:
if(item.isChecked() || checkedAll)
{
holder.checkBox.setChecked(true);
if(item.getId().equals(Sessions.getUserId(context)))
{
hView.setBackgroundResource(R.drawable.selector_list_gray);
}
else
{
hView.setBackgroundResource(R.drawable.selector_list_green);
}
}
else
{
holder.checkBox.setChecked(false);
hView.setBackgroundResource(R.drawable.selector_list);
}
On click of chkall checkbox, do following:
if(checked){
inviteListAdapter2.setCheckedAll(true);
modifyFriends(friendsList, true); //call a db helper method to change reflect check status in db
}else{
inviteListAdapter2.setCheckedAll(false);
modifyFriends(friendsList, false); //call a db helper method to change reflect check status in db
}
inviteListAdapter2.notifyDatasetChaged();
nAmDev,
I hear what you're saying about adding a checkbox to handle a user event signifying that the user wants to set all of the items' checkboxes to selected when the "Check All" checkbox is checked, or unselect all of the list items' checkboxes when the "Check All" checkbox is unchecked, or cleared.
So, to do this, yes, you would need to add a "Check all" checkbox, or possibly a actionbar menu item, to give the user a way to execute checking all of the items in the list.
In the click event handler for the "Check All" control, you would then get a reference to the list, or use the ArrayList that Nadir B described, and use that to loop through and check each item.
I am not sure if there is a way to create a reference to the list, and then do something similar to myList.SelectAll, or myList.CheckAll.
If not, and you want to do something similar to that, you could extend ListView and create your own CheckAll or SelectAll method, in which you would then just get a collection of the list items, and set each one to checked.

Related Links

Most efficient way to crop center of gradient
Android Multiple download pause resume in listview with progress update
How to increase space between text and it's underline in TextView Android?
ANDROID pre recorded call to a number
How can i use pagination in list view while parsing data from json?
Volley Timeout Error
How to return the value of the function after completing AsyncTask
How to Make Tabs Like Material Play Store
What is a better approach to designing android app navigation ? modal popups or drawer layouts?
Why does my activity seemingly crash after being recreated but not on orientation change?
Android4.4 or later, how to synchronize system data?
How to convert Android.Resource.Color to Android.Graphics.Color
Encode Video display wrong when using DecodeEditEncodeTest
What is the view returned in the onLoadingComplete callback from ImageLoadingListener?
How to run Android L Preview Sample On Android 5.0 / Nexus 7
instantiateItem is calling 3 times and button is not clickable

Categories

HOME
zend-framework
youtube-data-api-v3
fftw
graphics
shiro
cakephp-3.4
hugo
nested-if
bookmarks
nfs
performancepoint
little-proxy
fhir
line
x-cart
stellar.js
favicon
azure-powershell
capistrano3
scsi
swagger-2.0
symbols
imagemap
string-concatenation
easeljs
tiki-wiki
asymptotic-complexity
constexpr
custom-controls
xbox
volatile
jbutton
hibernate-validator
android-sugarorm
html-encode
fiware-cygnus
servicestack-text
engine.io
protege4
git-rewrite-history
protein-database
verifiable-c
linq-to-objects
numberpicker
lpsolve
angular-http
phpdbg
jide
double-click
dynamic-linq
jquery-ui-draggable
magic-draw
qtranslate
wpas
oracleclient
check-mk
swingworker
atlas
redbeard-ios
parfor
lrs
file-uri
neon
macaulay2
jquery-jscrollpane
firebase-security
android-wake-lock
nss
beanstalk
gocql
iokit
rubaxa-sortable
graphics2d
umlgraph
exceldatareader
document-repository
webmatrix-3
universal-image-loader
kissfft
personalization
xml-dsig
draw2d-js
mutual-authentication
sbcl
gtm-oauth2
jammer
ie8-compatibility-mode
video-codecs
insert-id
swfobject
redis-py
web-farm
garbage
apache-whirr
jsr286
isa-swizzling
cross-database
infobright
denied
exponentiation
inline-formset
msr
globals
maven-1
object-database
aspmenu
eclipse-marketplace
web-garden
murmurhash
spread
echo3
cardspace

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App