功能:点击全选按钮,选中所有任务,一并接收;点击单条任务,接收单条;不点击全选,点击多条任务,接收多条。
实现效果:
(1)全选
image.png
(2)多选
image.png
=====分割线======
主要代码:
GetTaskActivity.java
package com.andbase.patrol.gettask.activity;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.util.SparseBooleanArray;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ListView;
import com.ab.activity.AbActivity;
import com.ab.db.storage.AbSqliteStorage;
import com.ab.http.AbHttpUtil;
import com.ab.http.AbRequestParams;
import com.ab.http.AbStringHttpResponseListener;
import com.ab.util.AbToastUtil;
import com.ab.view.titlebar.AbTitleBar;
import com.andbase.R;
import com.andbase.db.DBSDHelper;
import com.andbase.global.Constant;
import com.andbase.global.MyApplication;
import com.andbase.patrol.gettask.adapter.GettaskAdapter;
import com.andbase.patrol.search.dao.PatrolAreaDao;
import com.google.gson.Gson;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* author:lmx
* date:2018/4/9
* description:任务领取,可全选
*/
public class GetTaskActivity extends AbActivity implements GettaskAdapter.CheckedAllListener {
private MyApplication application;
private AbTitleBar mAbTitleBar = null;
private List> list = null;
private GettaskAdapter gettaskAdapter;
//数据库操作
public AbSqliteStorage mAbSqliteStorage = null;
private AbHttpUtil mAbHttpUtil = null;
//定义数据库操作实现类
private PatrolAreaDao patrolAreaDao = null;
private String userName = "";
private String groupCode = "";
//多选
private boolean isCheck;
private CheckBox cbBtnAll;
SparseBooleanArray isCheckeds;
public String guid;
public String lineCode;
//用于存储已经选中的任务ID和lineCode
public static List idLineCodes = new ArrayList();
//判断是否全选按钮按下
boolean flag = false;
//实例
private Button btnAccept;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setAbContentView(R.layout.gettask);
application = (MyApplication) getApplication();
//任务领取页头
mAbTitleBar = this.getTitleBar();
mAbTitleBar.setTitleText(R.string.get_task);
mAbTitleBar.setLogo(R.drawable.button_selector_back);
mAbTitleBar.setTitleBarBackground(R.drawable.top_bg);
mAbTitleBar.setTitleTextMargin(10, 0, 0, 0);
mAbTitleBar.setLogoLine(R.drawable.line);
this.setTitleBarOverlay(true);
//初始化AbSqliteStorage
mAbSqliteStorage = AbSqliteStorage.getInstance(this);
//获取Http工具类
mAbHttpUtil = AbHttpUtil.getInstance(this);
//获取数据
userName = application.getUserName();
groupCode = application.getGroupCode();
//全选
cbBtnAll = (CheckBox) findViewById(R.id.cbBtnAll);
btnAccept = (Button) findViewById(R.id.btnAccept);
btnAccept.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//获取所有选中的记录的ID,lineCode
if (idLineCodes.size() > 0) {
String taskIds = "";
for (String taskId : idLineCodes) {
taskIds += taskId + ",";
}
taskIds = taskIds.substring(0, taskIds.length() - 1);
//接受任务
receivePatrolTask(taskIds, null);
} else {
}
}
});
//加载任务列表
loadTasks();
}
/**
* 该点击事件放在了xml文件的android:onclick中
* @param v
*/
public void allSelect(View v) {
if (cbBtnAll.isChecked()) {
flag = true;
} else {
flag = false;
}
if (flag) {
for (int i = 0; i < list.size(); i++) {
isCheckeds.put(i, true);
GettaskAdapter.setIsSelected(isCheckeds);
}
} else {
for (int i = 0; i < list.size(); i++) {
isCheckeds.put(i, false);
GettaskAdapter.setIsSelected(isCheckeds);
}
}
//更新适配器
gettaskAdapter.notifyDataSetChanged();
}
/**
* 全选按钮的回调事件,是否进行全选
* @param checkall
*/
@Override
public void CheckAll(SparseBooleanArray checkall) {
//判断SparseBooleanArray是否含有true
if (checkall.indexOfValue(true) < 0) {
if (cbBtnAll.isChecked()) {
this.flag = false;
cbBtnAll.setChecked(false);
}
} else if (checkall.indexOfValue(false) < 0) {
if (!cbBtnAll.isChecked()) {
this.flag = false;
cbBtnAll.setChecked(true);
}
} else if (checkall.indexOfValue(false) >= 0 && checkall.indexOfValue(true) >= 0) {
if (cbBtnAll.isChecked()) {
this.flag = true;
cbBtnAll.setChecked(false);
}
}
}
/**
* 加载任务列表
*/
public void loadTasks() {