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

Android studio 1 button 2 event
Android Grdiview not displaying correctly
My bitmap turns black with canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.MULTIPLY) Android
Compiling Cocos2d-x project on both Linux and OSX
How to track down file not found errors when debugging Android apps built with Cordova
what is the use of adding custom permission on activity in android
SpeechRecognizer method not on main thread in service
I delete an entry in SQLite database, then I got mixed order in ListView?
How to register broadcast receiver once it is unregister after app is killed
I want to send an email(javamail)with image attachment
ITelephony.aidl not working
android.os.TransactionTooLargeException “viewPager.setAdapter(adapter)”
Android, login using Rest API
Binding varargs using android databinding library
Measure time spent in each iterate in a while loop in java or android
Android Recyclerview Onclicklistener not working

Categories

HOME
asp.net-web-api
jpa
sh
vscode-extensions
onclick
azure-container-service
accessibility
fhir
pega
watson-conversation
alpacajs
asp.net-core-webapi
springfox
named-entity-recognition
scriptella
moses
beautifier
fable-f#
android-maps
apktool
browser-sync
jaws
failover
winpe
spring-security4
twos-complement
sql-delete
hivemq
alphabetical
cd
unordered-map
plaintext
sharp-snmp
claims
avcapturedevice
yii2-api
globalize
reportservice2010
payara-micro
backbone-collections
skin
universal-analytics
javafx-css
pocketsphinx-android
custom-lists
flex-monkey
redistributable
phpwebsocket
yajsw
toast
jaunt-api
avisynth
fuelcms
atoi
ocra
alloy-ui
node-serialport
openbabel
delayed-execution
angular-gettext
big-ip
trdion2011
mobility
sphinxql
modular
stacky
sqlclr
frameworkelementfactory
sentestingkit
subgraph
multiplatform
cloudfiles
luajava
silent
duplex
murmurhash
java1.4

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