android 实现列表多选,android 基于andbase框架实现全选多选功能

功能:点击全选按钮,选中所有任务,一并接收;点击单条任务,接收单条;不点击全选,点击多条任务,接收多条。

实现效果:

(1)全选

d6d2ee1f54bc

image.png

(2)多选

d6d2ee1f54bc

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() {

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值