美文网首页最近需要做的android开发技巧
android 基于andbase框架实现全选多选功能

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

作者: BugMyGod | 来源:发表于2018-05-21 11:14 被阅读65次

功能:点击全选按钮,选中所有任务,一并接收;点击单条任务,接收单条;不点击全选,点击多条任务,接收多条。
实现效果:
(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<Map<String, Object>> 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<String> idLineCodes = new ArrayList<String>();
    //判断是否全选按钮按下
    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() {
        String url = Constant.BASEURL + "app_patrol_task!queryPatrolTasks.action";
        AbRequestParams params = new AbRequestParams();
        params.put("userName", userName);
        params.put("groupCode", groupCode);
        mAbHttpUtil.post(url, params, new AbStringHttpResponseListener() {
            @Override
            public void onSuccess(int statusCode, String content) {
                //将结果传递回去
                isCheckeds = new SparseBooleanArray();
                list = new ArrayList<Map<String, Object>>();
                Map<String, Object> map = new HashMap<String, Object>();
                try {
                    JSONObject jsonObject = new JSONObject(content);
                    if ("true".equals(jsonObject.get("flag"))) {
                        String patrolTime = "";
                        //用JSON字符串来初始化一个JSON对象
                        JSONArray jsonArray = new JSONArray(jsonObject.get("data").toString());
                        for (int i = 0; i < jsonArray.length(); i++) {
                            patrolTime = jsonArray.getJSONObject(i).getString("startTime") + "-" + jsonArray.getJSONObject(i).getString("endTime");
                            map = new HashMap<String, Object>();
                            map.put("guid", jsonArray.getJSONObject(i).getString("id"));
                            map.put("lineCode", jsonArray.getJSONObject(i).getString("lineCode"));
                            map.put("itemNo", i + 1);
                            map.put("lineName", jsonArray.getJSONObject(i).getString("lineName"));
                            map.put("patrolTime", patrolTime);
                            map.put("itemHandle", "接受");
                            list.add(map);
                        }
                    }
                } catch (Exception ex) {
                    Log.e("JSON Error: ", ex.toString());
                }
                ListView listView = (ListView) findViewById(R.id.lvGetTask);
                gettaskAdapter = new GettaskAdapter(GetTaskActivity.this, list,
                        R.layout.gettask_item, new String[]{"guid", "lineCode", "itemNo", "lineName", "patrolTime", "itemHandle"}, new int[]{R.id.tvGuid, R.id.tvCode, R.id.tvTaskNo,
                        R.id.tvTaskLine, R.id.tvTaskTime, R.id.btnHandle, R.id.cbAgree});
                listView.setAdapter(gettaskAdapter);
            }

            @Override
            public void onStart() {

            }

            @Override
            public void onFinish() {

            }

            @Override
            public void onFailure(int statusCode, String content, Throwable error) {
                //将失败错误信息传递回去
                AbToastUtil.showToast(GetTaskActivity.this, content);
            }

        });
    }

    /**
     * 接收任务
     * @param taskIds
     * @param lineCode
     */
    public void receivePatrolTask(String taskIds, String lineCode) {

        //初始化数据库操作实现类
        patrolAreaDao = new PatrolAreaDao(GetTaskActivity.this);
        //(1)获取数据库
        //patrolAreaDao.startReadableDatabase();
        //(2)执行查询
        //List<PatrolArea> areaList = patrolAreaDao.queryList(null, "major_code='" + application.getMajorCode() + "' and (nfc_id is null or nfc_id='') and area_code in (select distinct area_code from m_line_point where line_code='" + lineCode + "')", null, null, null, "area_code asc ", null);
        //(3)关闭数据库
        //patrolAreaDao.closeDatabase();
//        if (areaList.size() > 0) {
//            AbToastUtil.showToast(GetTaskActivity.this, "请在巡检卡设置中绑定NFC卡");
//            return;
//        }

        if (taskIds == null || "".equals(taskIds)) {
            AbToastUtil.showToast(GetTaskActivity.this, "请选择接受的任务");
            return;
        }
        String url = Constant.BASEURL + "app_patrol_task!receivePatrolTask.action";
        AbRequestParams params = new AbRequestParams();
        params.put("userName", application.getUserName());
        params.put("groupCode", application.getGroupCode());
        params.put("macceptTime", nowTime());
        params.put("taskIds", taskIds);

        mAbHttpUtil.post(url, params, new AbStringHttpResponseListener() {
            @Override
            public void onSuccess(int statusCode, String content) {
                //将结果传递回去
                //list = new ArrayList<Map<String, Object>>();
                Gson gs = new Gson();
                Map<String, String> map = gs.fromJson(content, Map.class);
                DBSDHelper dbsdHelper = new DBSDHelper(GetTaskActivity.this);
                SQLiteDatabase db = dbsdHelper.getWritableDatabase();

                try {

                    if ("true".equals(map.get("flag"))) {
                        JSONArray jsonArray = new JSONArray(map.get("data"));
                        db.beginTransaction();
                        for (int i = 0; i < jsonArray.length(); i++) {
                            String sql = jsonArray.getJSONObject(i).getString("sql");
                            db.execSQL(sql);
                        }
                        db.setTransactionSuccessful();
                        //AbToastUtil.showToast(GetTaskActivity.this,"任务接受成功!");
                        loadTasks();
                        AbToastUtil.showToast(GetTaskActivity.this, "任务接受成功!");
                    }
                } catch (Exception ex) {
                    Log.e("JSON Error: ", ex.toString());
                } finally {
                    try {
                        if (db.isOpen()) {
                            db.endTransaction();
                            db.close();
                            dbsdHelper.close();
                            //初始化记录选中任务的数组
                            idLineCodes = new ArrayList<String>();
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
//
//              ListView listView = (ListView) findViewById(R.id.get_task_list);
//              GettaskAdapter gettaskAdapter = new GettaskAdapter(GetTaskActivity.this, list,
//                      R.layout.gettask_item, new String[] { "itemNo", "itemLine", "itemTime", "itemHandle"}, new int[] { R.id.itemNo,
//                      R.id.itemLine, R.id.itemTime,R.id.itemHandle});
//              listView.setAdapter(gettaskAdapter);

            }

            @Override
            public void onStart() {

            }

            @Override
            public void onFinish() {

            }

            @Override
            public void onFailure(int statusCode, String content, Throwable error) {
                //将失败错误信息传递回去
                AbToastUtil.showToast(GetTaskActivity.this, content);
            }

        });

    }

    /**
     * 获取当前时间 yyyy-MM-dd HH:mm:ss
     */
    public String nowTime() {
        Calendar calendar = Calendar.getInstance();  //获取当前时间,作为图标的名字
        String year = calendar.get(Calendar.YEAR) + "";
        int month = calendar.get(Calendar.MONTH) + 1;
        int strDate = calendar.get(Calendar.DAY_OF_MONTH);
        int hour = calendar.get(Calendar.HOUR_OF_DAY);
        int minute = calendar.get(Calendar.MINUTE);
        int second = calendar.get(Calendar.SECOND);
        String seperator1 = "-";
        String seperator2 = ":";
        String monthStr = "";
        String strDateStr = "";
        String hourStr = "";
        String minuteStr = "";
        String secondStr = "";
        if (month >= 1 && month <= 9) {
            monthStr = "0" + month;
        } else {
            monthStr = month + "";
        }
        if (strDate >= 0 && strDate <= 9) {
            strDateStr = "0" + strDate;
        } else {
            strDateStr = strDate + "";
        }
        if (hour >= 0 && hour <= 9) {
            hourStr = "0" + hour;
        } else {
            hourStr = hour + "";
        }
        if (minute >= 0 && minute <= 9) {
            minuteStr = "0" + minute;
        } else {
            minuteStr = minute + "";
        }
        if (second >= 0 && second <= 9) {
            secondStr = "0" + second;
        } else {
            secondStr = second + "";
        }
        String currentdate = year + seperator1 + monthStr + seperator1 + strDateStr
                + " " + hourStr + seperator2 + minuteStr
                + seperator2 + secondStr;
        return currentdate;
    }

    public boolean isCheck() {
        return isCheck;
    }

    public void setCheck(boolean check) {
        isCheck = check;
    }

    public String getGuid() {
        return guid;
    }

    public void setGuid(String guid) {
        this.guid = guid;
    }

    public String getLineCode() {
        return lineCode;
    }

    public void setLineCode(String lineCode) {
        this.lineCode = lineCode;
    }

    public List<String> getIdLineCodes() {
        return idLineCodes;
    }

    public void setIdLineCodes(List<String> idLineCodes) {
        this.idLineCodes = idLineCodes;
    }
}

GettaskAdapter.java

package com.andbase.patrol.gettask.adapter;

import android.graphics.Color;
import android.util.SparseBooleanArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;

import com.andbase.patrol.gettask.activity.GetTaskActivity;

import java.util.List;
import java.util.Map;

public class GettaskAdapter extends BaseAdapter {

    private GetTaskActivity mContext;
    //单行的布局
    private int mResource;
    //列表展现的数据
    private List<? extends Map<String, ?>> mData;
    //Map中的key
    private String[] mFrom;
    //view的id
    private int[] mTo;
    //点击变色
    private int selectedPosition = -1;// 选中的位置
    //多选--用SparseBooleanArray来代替map
    private static SparseBooleanArray isSelected;
    //用户存储条目的选择状态
    private Map<Integer, Boolean> dataSet1;
    private boolean isCheck;
    //全选回调接口
    CheckedAllListener mListener;
    public void setCheckedAllListener(CheckedAllListener listener) {
        mListener = listener;
    }

    /**
     * 构造方法
     *
     * @param context
     * @param data     列表展现的数据
     * @param resource 单行的布局
     * @param from     Map中的key
     * @param to       view的id
     */
    public GettaskAdapter(GetTaskActivity context, List<? extends Map<String, ?>> data,
                          int resource, String[] from, int[] to) {
        mContext = context;
        mData = data;
        mResource = resource;
        mFrom = from;
        mTo = to;
        isSelected = new SparseBooleanArray();
    }

    public static SparseBooleanArray getIsSelected() {
        return isSelected;
    }

    public static void setIsSelected(SparseBooleanArray isSelected) {
        GettaskAdapter.isSelected = isSelected;
    }

    @Override
    public int getCount() {
        return mData.size();
    }

    @Override
    public Object getItem(int position) {
        return mData.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    //点击变色
    public void setSelectedPosition(int position) {
        selectedPosition = position;
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        final GettaskAdapter.ViewHolder holder;
        //设置数据
        Map<String, ?> dataSet = mData.get(position);
        if (convertView == null) {
            //使用自定义的list_items作为Layout
            convertView = LayoutInflater.from(mContext).inflate(mResource, parent, false);
            //使用减少findView的次数
            holder = new GettaskAdapter.ViewHolder();
            holder.guid = ((TextView) convertView.findViewById(mTo[0]));
            holder.lineCode = ((TextView) convertView.findViewById(mTo[1]));
            holder.itemNo = ((TextView) convertView.findViewById(mTo[2]));
            holder.lineName = ((TextView) convertView.findViewById(mTo[3]));
            holder.patrolTime = ((TextView) convertView.findViewById(mTo[4]));
            holder.itemHandle = ((Button) convertView.findViewById(mTo[5]));
            holder.cbAgree = ((CheckBox) convertView.findViewById(mTo[6]));

            //设置标记
            convertView.setTag(holder);
            holder.cbAgree.setTag(dataSet);
        } else {
            holder = (GettaskAdapter.ViewHolder) convertView.getTag();
            holder.cbAgree.setTag(dataSet);
        }
        if (dataSet == null) {
            return null;
        }
        //获取该行数据
        final Object guid = dataSet.get(mFrom[0]);
        final Object lineCode = dataSet.get(mFrom[1]);
        final Object itemNo = dataSet.get(mFrom[2]);
        final Object lineName = dataSet.get(mFrom[3]);
        final Object patrolTime = dataSet.get(mFrom[4]);
        final Object itemHandle = dataSet.get(mFrom[5]);

        holder.guid.setText(guid.toString());
        holder.lineCode.setText(lineCode.toString());
        holder.itemNo.setText(itemNo.toString());
        holder.lineName.setText(lineName.toString());
        holder.patrolTime.setText(patrolTime.toString());
        holder.itemHandle.setText(itemHandle.toString());

        //巡检任务接受
        holder.itemHandle.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                holder.itemHandle.setSelected(true);
                holder.itemHandle.setPressed(true);
                holder.itemHandle.setTextColor(Color.parseColor("#f75555"));
                mContext.receivePatrolTask(guid.toString(), lineCode.toString());

            }
        });


        // 多选
        if (dataSet != null) {
            holder.cbAgree.setChecked(isSelected.get(position));
        }
        /**
         * 增加checkbox的改变事件,每个item的点击事件
         */
        final ViewHolder fholder = holder;
        holder.cbAgree.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

                if (buttonView.isPressed()) {
                    isSelected.put(position, isChecked);

                    Map<String, ?> row = (Map<String, ?>)fholder.cbAgree.getTag();
                    String id = row.get(mFrom[0]).toString();
                    if(isChecked){
                        mContext.idLineCodes.add(id);
                    }else{
                        mContext.idLineCodes.remove(id);
                    }
                }
                mContext.setCheck(isChecked);

            }
        });

        return convertView;
    }

    /**
     * ViewHolder类
     */
    static class ViewHolder {
        TextView itemNo;//编号
        TextView guid;//id
        TextView lineCode;//巡检线路
        TextView lineName;//巡检线路
        TextView patrolTime;//巡检时间
        Button itemHandle;//操作
        CheckBox cbAgree;//多选按钮

    }

    /**
     * 当所有CheckBox全选时回调
     */
    public interface CheckedAllListener {

        void CheckAll(SparseBooleanArray checkall);

    }

    public boolean isCheck() {
        return isCheck;
    }

    public void setCheck(boolean check) {
        isCheck = check;
    }

}

gettask.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@color/gray_white">

    <ListView
        android:id="@+id/lvGetTask"
        android:divider="@null"
        android:dividerHeight="10.0dip"
        android:scrollbars="none"
        android:listSelector="@android:color/transparent"
        android:cacheColorHint="@android:color/transparent"
        android:fadingEdge="none"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="55dip"
        android:layout_marginBottom="41dip"/>

    <!-- 按钮 -->
    <FrameLayout
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:id="@+id/f1_frag"
        android:layout_width="match_parent"
        android:layout_height="40dip"
        android:layout_marginBottom="0dip"
        android:background="@color/white">

        <CheckBox
            android:id="@+id/cbBtnAll"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_marginLeft="15dip"
            android:textColor="@color/project_word_color"
            android:text="全选"
            android:checked="false"
            android:focusable="true"
            android:onClick="allSelect"
            android:textSize="@dimen/table_body" />

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:gravity="right"
            android:layout_marginLeft="8dip">

            <Button
                android:id="@+id/btnAccept"
                android:layout_width="100dip"
                android:layout_height="fill_parent"
                android:layout_marginLeft="1dip"
                android:background="@color/btn_bg"
                android:text="接收"
                android:gravity="center"
                android:textColor="@color/white"
                android:textSize="@dimen/table_body" />

        </LinearLayout>

    </FrameLayout>

</RelativeLayout>

gettask_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <RelativeLayout
        android:id="@+id/rlLinkName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/white">

        <LinearLayout
            android:id="@+id/llBox"
            android:layout_width="fill_parent"
            android:layout_height="@dimen/hidden_ll_h"
            android:orientation="horizontal">

            <!-- 第一列 多选按钮 -->
            <LinearLayout
                android:layout_width="0dip"
                android:layout_height="match_parent"
                android:layout_weight="0.15"
                android:orientation="vertical">

                <!-- 多选按钮 -->
                <CheckBox
                    android:id="@+id/cbAgree"
                    android:layout_width="@dimen/pages_small_box"
                    android:layout_height="@dimen/pages_small_box"
                    android:layout_marginTop="@dimen/slink_cb_top"
                    android:layout_marginLeft="10dip"
                    android:checked="false"
                    android:clickable="true"
                    android:focusable="true"/>

            </LinearLayout>

            <LinearLayout
                android:layout_width="0dip"
                android:layout_height="match_parent"
                android:layout_weight="0.3"
                android:gravity="center"
                android:orientation="vertical">

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="@dimen/hidden_ll_img_h"
                    android:orientation="horizontal">

                    <ImageView
                        android:layout_width="50dip"
                        android:layout_height="50dip"
                        android:layout_gravity="center"
                        android:background="@drawable/circle" />

                </LinearLayout>

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="@dimen/hidden_ll_item_h"
                    android:orientation="horizontal">

                    <!-- guid、线路编号 隐藏-->
                    <TextView
                        android:id="@+id/tvGuid"
                        android:orientation="horizontal"
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:gravity="fill_vertical"
                        android:textColor="@color/title_text_color"
                        android:textSize="@dimen/table_body"
                        android:visibility="gone"/>

                    <TextView
                        android:id="@+id/tvCode"
                        android:orientation="horizontal"
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:gravity="fill_vertical"
                        android:textColor="@color/title_text_color"
                        android:textSize="@dimen/table_body"
                        android:visibility="gone"/>

                    <!-- 任务编号 -->
                    <TextView
                        android:id="@+id/tvTaskNo"
                        android:orientation="horizontal"
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:gravity="fill_vertical"
                        android:textColor="@color/title_text_color"
                        android:text="任务编号"
                        android:textSize="@dimen/table_body" />

                </LinearLayout>

            </LinearLayout>

            <LinearLayout
                android:layout_width="0dip"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:gravity="left"
                android:orientation="vertical">

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="@dimen/hidden_ll_item_h2"
                    android:orientation="horizontal">

                    <!-- 巡检线路 -->
                    <TextView
                        android:id="@+id/tvTaskLine"
                        android:orientation="horizontal"
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:gravity="bottom"
                        android:textColor="@color/title_text_color"
                        android:text="巡检线路"
                        android:textSize="@dimen/title"
                        />

                </LinearLayout>

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="@dimen/hidden_ll_item_h3"
                    android:orientation="horizontal">

                    <!-- 时间 -->
                    <TextView
                        android:id="@+id/tvTaskTime"
                        android:orientation="horizontal"
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:gravity="bottom"
                        android:textColor="@color/details_fix_text_color"
                        android:text="09:00~11:00"
                        android:textSize="@dimen/table_body" />

                </LinearLayout>

            </LinearLayout>

            <LinearLayout
                android:layout_width="0dip"
                android:layout_height="80dip"
                android:layout_weight="0.3"
                android:gravity="right"
                android:orientation="vertical">

                <ImageView
                    android:layout_width="@dimen/pages_img_box"
                    android:layout_height="@dimen/pages_img_box"
                    android:gravity="fill_vertical"
                    android:background="@drawable/notstarted" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="right">

                    <Button
                        android:id="@+id/btnHandle"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_marginRight="@dimen/hidden_ll_img_top"
                        android:text="接收"
                        android:textColor="@color/blue"
                        android:textSize="@dimen/tb_body"
                        android:background="@color/transparent"/>


                </LinearLayout>

            </LinearLayout>

        </LinearLayout>

    </RelativeLayout>

</LinearLayout>

相关文章

网友评论

  • 你要快乐_ae30:有demo吗?
    可以分享给我。
    这是我的邮箱:1397547864@qq.com

本文标题:android 基于andbase框架实现全选多选功能

本文链接:https://www.haomeiwen.com/subject/xukfjftx.html