仿QQ侧拉删除

         


我的这个界面 是由  极光推送点击后 进入的界面: 界面中的数据 都是请求服务器所得到的

<?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="match_parent">

    <include layout="@layout/toolbar"></include>

    <ListView
        android:id="@+id/listview"
        android:paddingTop="17dp"
        android:background="#f5f5f5"
        android:paddingLeft="6dp"
        android:paddingRight="6dp"
        android:dividerHeight="12dp"
        android:divider="#f5f5f5"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </ListView>

</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
<com.basedemo.my.xi.basedemo.view.SwipeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/swipelayout"
    tools:context=".activity.TongZhiActivity">
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="146dp"
        android:orientation="horizontal">

        <View
            android:layout_width="3dp"
            android:layout_height="wrap_content"
            />

        <TextView
            android:id="@+id/delete"
            android:layout_width="51dp"
            android:layout_height="match_parent"
            android:background="@drawable/delete"
            android:gravity="center"
            android:text="删除"
            android:textSize="18dp"
            android:textColor="#fff" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/tongzhibg_conner"
        android:paddingBottom="11dp"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:paddingLeft="12dp"
            android:layout_height="38dp"
            android:gravity="center_vertical">
            <TextView
                android:id="@+id/tv_type"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="15dp"
                android:text="" />
            <TextView
                android:id="@+id/tv_time"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:textSize="15dp"
                android:textColor="#27201e"
                android:text=""/>
        </LinearLayout>
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="#cdc2b0"
            />
        <TextView
            android:id="@+id/tv_content"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="11dp"
            android:layout_marginLeft="12dp"
            android:layout_marginBottom="19dp"
            android:textSize="15dp"
            android:textColor="#27201e"
            android:lines="2"
            android:text="内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容"/>

        <!--两个按钮-->
        <RelativeLayout
            android:id="@+id/rl_btn"
            android:visibility="visible"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="26dp"
            android:paddingRight="26dp">
            <Button
                android:id="@+id/btn_un_agree_join"
                android:layout_width="78dp"
                android:layout_height="28dp"
                android:layout_alignParentLeft="true"
                android:background="@drawable/tongzhibg_btn_un_agree_selector"
                android:textColor="@color/white"
                android:text="拒绝加入"/>
            <Button
                android:id="@+id/btn_agree_join"
                android:layout_width="78dp"
                android:layout_height="28dp"
                android:layout_alignParentRight="true"
                android:textColor="@color/white"
                android:background="@drawable/tongzhibg_btn_agree_selector"
                android:text="允许加入"/>
        </RelativeLayout>


    </LinearLayout>

</com.basedemo.my.xi.basedemo.view.SwipeLayout>

package com.basedemo.my.xi.basedemo.view;

/**
 * @Author Xi
 * Created by zz.wbkj.xi on 2016/8/29.
 */

import android.content.Context;
import android.graphics.Rect;
import android.support.v4.view.ViewCompat;
import android.support.v4.widget.ViewDragHelper;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;

/**
 * 侧滑删除的控件
 */
public class SwipeLayout extends FrameLayout {

    private static final String TAG = SwipeLayout.class.getSimpleName();
    private ViewDragHelper viewDragHelper;
    private ViewGroup mBackLayout;
    private ViewGroup mFrontLayout;
    private int mRange;
    private int mWidth;
    private int mHeight;
    // 默认 关闭状态
    private SwipeStatus status = SwipeStatus.CLOSE;
    private OnSwipeStatuChangeListener onSwipeStatuChangeListener;
    //  3. 回调  处理事件 处理的结果都在回调里
    ViewDragHelper.Callback callback = new ViewDragHelper.Callback() {


        /**
         * 返回值决定 子view 是否可以拖动
         * @param child   当前手指拖动的子view
         * @param pointerId  多指操作的使用  手指分配的id
         * @return
         */
        @Override
        public boolean tryCaptureView(View child, int pointerId) {
            return true;//child == mFrontLayout;
        }

        /**
         * 一个子view  被捕获的时候调用
         * @param capturedChild   被捕获的view
         * @param activePointerId  多指操作的时候使用
         */
        @Override
        public void onViewCaptured(View capturedChild, int activePointerId) {
            super.onViewCaptured(capturedChild, activePointerId);
        }

        /**
         * 返回值决定拖动到什么位置  还没有真正的移动
         * 修正移动的位置
         * @param child
         * @param left  建议达到的位置    = 当前+ 瞬间变化量
         * @param dx 瞬间变化量
         * @return
         */
        @Override
        public int clampViewPositionHorizontal(View child, int left, int dx) {

            int oldLeft = mFrontLayout.getLeft();// 左边的坐标
//            Log.d(TAG, "clampViewPositionHorizontal: 建议达到的位置: " + left
//                    + " === " + oldLeft + "+" + dx
//            );
            if (child == mFrontLayout) {
                // 拖动的是  mFrontLayout   -mRange  ----->0
                left = fixFrontLeft(left);
            } else if (child == mBackLayout) {
                // 拖动的是  mBackLayout    mWidth  - mRange ----> mWidth
                left = fixBackLeft(left);
            }

            return left;
        }

        /**
         * 修正backLeft
         * @param left
         * @return
         */
        private int fixBackLeft(int left) {
            if (left < (mWidth - mRange)) {
                left = mWidth - mRange;
            } else if (left > mWidth) {
                left = mWidth;
            }
            return left;
        }

        /**
         * 修正frontleft
         * @param left
         * @return
         */
        private int fixFrontLeft(int left) {
            if (left < -mRange) {
                left = -mRange;
            } else if (left > 0) {
                left = 0;
            }
            return left;
        }

        /**
         * 获取控件横向拖动的范围 返回值不影响拖动
         * 1.  计算伴随动画时长   2.  抗干扰
         *  只要返回大于 0 即可
         * @param child
         * @return
         */
        @Override
        public int getViewHorizontalDragRange(View child) {
            return mRange;
        }

        /**
         * 子view  位置改变的时候调用  1. 添加伴随动画 2. 状态的更新  3. 添加回调
         * @param changedView  拖动  的子view
         * @param left  clampViewPositionHorizontal 的返回值  拖动的位置
         * @param top
         * @param dx  水平方向的瞬间变化量
         * @param dy  垂直方向的瞬间变化量
         */
        @Override
        public void onViewPositionChanged(View changedView, int left, int top, int dx, int dy) {
//            Log.d(TAG, "onViewPositionChanged: " + changedView + "::left = " + left
//                    + "::dx = " + dx);
            if (changedView == mFrontLayout) {
                //拖动的是  mFrontLayout  , 将变化量 交给  mBackLayout一份
                mBackLayout.offsetLeftAndRight(dx);//  在原来的基础上设置水平的偏移量
            } else if (changedView == mBackLayout) {
                //拖动的是  mBackLayout  , 将变化量 交给  mFrontLayout
                mFrontLayout.offsetLeftAndRight(dx);//  在原来的基础上设置水平的偏移量
            }

            //  处理状态的更新
            dispathEvent();

            // 手动绘制
            invalidate();
        }

        /**
         * 子view   释放的时候调用   手指抬起
         * @param releasedChild  释放的子view
         * @param xvel   s = vt   速度    水平方向的速度  向左 -  向右+   0
         * @param yvel    垂直方向的速度
         */
        @Override
        public void onViewReleased(View releasedChild, float xvel, float yvel) {
//            Log.d(TAG, "onViewReleased: releasedChild = " + releasedChild + "::xvel = " + xvel);
            if (mFrontLayout.getLeft() < -mRange * 0.5 && xvel == 0) {
                open();// 打开
            } else if (xvel < 0) {
                // 向左
                open();
            } else {
                close(); // 其他都需要关闭
            }
        }


    };

    public SwipeLayout(Context context) {
        this(context, null);
    }

    public SwipeLayout(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public SwipeLayout(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);

        //  1. 初始化ViewDragHelper对象
//ctrl + alt+ F C V
        viewDragHelper = ViewDragHelper.create(this, 1.0f, callback);
    }

    public SwipeStatus getStatus() {
        return status;
    }

    public void setStatus(SwipeStatus status) {
        this.status = status;
    }

    // 2 处理事件的拦截 决定是否将事件转交给  ViewDragHelper 对象
    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {

        // 让  ViewDragHelper  决定  事件是否拦截
        return viewDragHelper.shouldInterceptTouchEvent(ev);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        // 处理事件    ViewDragHelper 的事件生效
        viewDragHelper.processTouchEvent(event);
        //  返回 true  表示 消费  事件
        // down  //move  up
        return true;
    }

    /**
     * 测量子view   会调用多次
     *
     * @param widthMeasureSpec
     * @param heightMeasureSpec
     */
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }

    /**
     * 在每次测量完成后  数值改变的时候调用
     *
     * @param w
     * @param h
     * @param oldw
     * @param oldh
     */
    @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        super.onSizeChanged(w, h, oldw, oldh);

        // 获取当前控件的宽高
        mWidth = getMeasuredWidth();
        mHeight = getMeasuredHeight();

        // 获取拖动的范围
        mRange = mBackLayout.getMeasuredWidth();
    }


    // xml ---- view

    //  xml  填充为view 对象 填充完的时候调用
    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();

        // 健壮性的判断
        if (getChildCount() < 2) {
            throw new IllegalStateException("you must be  hava 2 children at least!");
        }

        if (!(getChildAt(0) instanceof ViewGroup) || !(getChildAt(1) instanceof ViewGroup)) {
            throw new IllegalArgumentException("your children must be instance of ViewGroup!");
        }

        mBackLayout = (ViewGroup) getChildAt(0);
        mFrontLayout = (ViewGroup) getChildAt(1);
    }

    @Override
    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
        super.onLayout(changed, left, top, right, bottom);

        //    mBackLayout放在后边
        layoutInit(false);
    }

    private void layoutInit(boolean isOpen) {
        Rect mFrontRect = computeFrontRect(isOpen);
        mFrontLayout.layout(mFrontRect.left, mFrontRect.top, mFrontRect.right, mFrontRect.bottom);
        Rect mBackRect = computeBackRect(mFrontRect);// 根据前边的矩形位置 计算   mBackRect 位置
        mBackLayout.layout(mBackRect.left, mBackRect.top, mBackRect.right, mBackRect.bottom); // 放置 控件的位置

        // 子view 放在前边
        bringChildToFront(mFrontLayout);
    }

    /**
     * 后边的控件的位置
     *
     * @param mFrontRect
     * @return
     */
    private Rect computeBackRect(Rect mFrontRect) {
        return new Rect(mFrontRect.right, mFrontRect.top, mFrontRect.right + mRange, mFrontRect.bottom);
    }

    /**
     * 返回 mFrontRect 位置
     *
     * @return
     */
    private Rect computeFrontRect(boolean isopen) {
        int left = 0;
        if (isopen) {
            left = -mRange;
        }
        return new Rect(left, 0, left + mWidth, 0 + mHeight);
    }

    /**
     * 1.  处理状态更新  2. 添加回调
     */
    private void dispathEvent() {
        // 记录上次的状态
        SwipeStatus preStatus = status;
        status = updateStatus();
        if (onSwipeStatuChangeListener != null) {
            onSwipeStatuChangeListener.onSwiping(this);
            if (preStatus != status) {
                // 上一个状态和当前状态不一致

                if (status == SwipeStatus.CLOSE) {
                    // 关闭
                    onSwipeStatuChangeListener.onClose(this);
                } else if (status == SwipeStatus.OPEN) {
                    onSwipeStatuChangeListener.onOpen(this);
                }

                //   上一个状态是  关闭状态
                if (preStatus == SwipeStatus.CLOSE) {
                    // 将要打开
                    onSwipeStatuChangeListener.onStartOpen(this);
                } else if (preStatus == SwipeStatus.OPEN) {
                    // 上一个状态是打开i状态
                    onSwipeStatuChangeListener.onStartClose(this);
                }
            }
        }

    }

    /**
     * 获取最新的状态
     *
     * @return
     */
    private SwipeStatus updateStatus() {
        if (mFrontLayout.getLeft() == -mRange) {
            return SwipeStatus.OPEN;
        } else if (mFrontLayout.getLeft() == 0) {
            return SwipeStatus.CLOSE;
        }
        return SwipeStatus.SWIPING;
    }

    @Override
    public void computeScroll() {   //很多次      50+
        super.computeScroll();

        // 确定是否继续触发动画
        boolean b = viewDragHelper.continueSettling(true);
        if (b) {
            //执行动画
            ViewCompat.postInvalidateOnAnimation(this);
        }
    }

    ///
    // 打开或关闭
    ///

    public void open(boolean isSmooth) {
        if (isSmooth) {   //平滑的打开   长发公主    scroller
            //   返回决定是否触发动画
            boolean b = viewDragHelper.smoothSlideViewTo(mFrontLayout, -mRange, 0);
            if (b) {
                // 触发动画   执行动画
                ViewCompat.postInvalidateOnAnimation(this);
            }

        } else {
            layoutInit(true); //默认关闭状态
        }
    }

    /**
     * 打开i
     */
    public void open() {
        open(true);//默认平滑打开
    }

    public void close(boolean isSmooth) {
        if (isSmooth) {

            boolean b = viewDragHelper.smoothSlideViewTo(mFrontLayout, 0, 0);
            if (b) {
                //触发动画
                //执行动画
                ViewCompat.postInvalidateOnAnimation(this);
            }

        } else {  //不是平滑的移动
            layoutInit(false); //默认关闭状态
        }
    }

    /**
     * 关闭
     */
    public void close() {
        close(true);//  默认平滑关闭
    }

    public OnSwipeStatuChangeListener getOnSwipeStatuChangeListener() {
        return onSwipeStatuChangeListener;
    }

    public void setOnSwipeStatuChangeListener(OnSwipeStatuChangeListener onSwipeStatuChangeListener) {
        this.onSwipeStatuChangeListener = onSwipeStatuChangeListener;
    }

    // 状态
    enum SwipeStatus {
        OPEN, CLOSE, SWIPING
    }

    public interface OnSwipeStatuChangeListener {

        void onOpen(SwipeLayout layout);// 打开

        void onClose(SwipeLayout layout);// 关闭

        void onSwiping(SwipeLayout layout);// 正在拖动


        void onStartOpen(SwipeLayout layout);// 将要打开

        void onStartClose(SwipeLayout layout);// 将要关闭

    }
}

package com.basedemo.my.xi.basedemo.activity;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.basedemo.my.xi.basedemo.R;
import com.basedemo.my.xi.basedemo.adapter.MyBaseAdapter;
import com.basedemo.my.xi.basedemo.bean.TongzhiAgreeResultBean;
import com.basedemo.my.xi.basedemo.bean.TongzhiDeleteResultBean;
import com.basedemo.my.xi.basedemo.bean.TongzhiShowBean;
import com.basedemo.my.xi.basedemo.net.NetPath;
import com.basedemo.my.xi.basedemo.utils.SPUtils;
import com.basedemo.my.xi.basedemo.utils.ToastUtils;
import com.google.gson.Gson;
import com.yolanda.nohttp.rest.Response;

import java.util.List;

import cn.jpush.android.api.JPushInterface;

/**
 * @Author Xi
 * Created by zz.wbkj.xi on 2016/8/29.
 */
public class TongZhiActivity extends MyBaseActivity {

    private ListView listview;
    private String user_id ;
    public static final int WHAT_SHOW_TONGZHI = 1;
    public static final int WHAT_TONGZHI_AGREE = 2;
    public static final int WHAT_TONGZHI_UN_AGREE = 3;
    public static final int WHAT_TONGZHI_DELETE = 4;
    private TongzhiAdapter adapter;

    @Override
    public void init() {
        String userid = (String) SPUtils.get(mContext,"user_id","");
        if (!TextUtils.isEmpty(userid)){
            user_id = userid;
        }
        Intent intent = getIntent();
        Bundle bundle = getIntent().getExtras();
        if (null != bundle) {
            String title = bundle.getString(JPushInterface.EXTRA_NOTIFICATION_TITLE);
            String content = bundle.getString(JPushInterface.EXTRA_ALERT);
//            tv.setText("Title : " + title + "  " + "Content : " + content);
        }
    }

    @Override
    public int getLayoutId() {
        return R.layout.activity_tongzhi;
    }

    @Override
    public void initView() {

        initToolBar();

        listview = (ListView) findViewById(R.id.listview);

    }



    @Override
    public void initData() {
        map.clear();
        map.put("user_id",user_id);
        requestNet_POST(NetPath.TONGZHI_MSG_SHOW,WHAT_SHOW_TONGZHI,map);

    }

    @Override
    public void onSucceedPaser(int what, Gson gson, Response<String> response) {
        super.onSucceedPaser(what, gson, response);
        switch (what){
            case WHAT_SHOW_TONGZHI:
                try {
                    TongzhiShowBean bean = gson.fromJson(response.get(),TongzhiShowBean.class);
                    if (adapter == null) {
                        if (bean.getData()!=null && bean.getData().size()>0 ){
                            adapter = new TongzhiAdapter(mContext, bean.getData());
                            listview.setAdapter(adapter);
                        }
                    }else {
                        if (bean.getData()!=null && bean.getData().size()>0 ) {
                            adapter.refresh(bean.getData());
                        }
                    }
                }catch (Exception e){
                }
                break;
            case WHAT_TONGZHI_AGREE:
                try {
                    TongzhiAgreeResultBean bean = gson.fromJson(response.get(),TongzhiAgreeResultBean.class);
                    if (bean.getCode()==1){
                        ToastUtils.showToast(bean.getMsg());
                        if (bean.getData()==1){
                            map.clear();
                            map.put("user_id",user_id);
                            requestNet_POST(NetPath.TONGZHI_MSG_SHOW,WHAT_SHOW_TONGZHI,map);
                        }
                    }
                }catch (Exception e){
                }
                break;
            case WHAT_TONGZHI_UN_AGREE:
                    TongzhiAgreeResultBean bean = gson.fromJson(response.get(),TongzhiAgreeResultBean.class);
                    if (bean.getCode()==1){
                        ToastUtils.showToast(bean.getMsg());
                         if (bean.getData()==1){
                             map.clear();
                             map.put("user_id",user_id);
                            requestNet_POST(NetPath.TONGZHI_MSG_SHOW,WHAT_SHOW_TONGZHI,map);
                        }
                     }

                break;
            case WHAT_TONGZHI_DELETE:
                try {
                    TongzhiDeleteResultBean deleteResultBean = gson.fromJson(response.get(),TongzhiDeleteResultBean.class);
                    if (deleteResultBean.getCode()==1){
                        if (deleteResultBean.getData()==1){
//                            ToastUtils.showToast("删除成功");
                            map.clear();
                            map.put("user_id",user_id);
                            requestNet_POST(NetPath.TONGZHI_MSG_SHOW,WHAT_SHOW_TONGZHI,map);
                        }else {
                            ToastUtils.showToast("删除失败");
                        }
                    }
                }catch (Exception e){
                }
                break;
        }

    }

    @Override
    public void initListener() {

    }

    class TongzhiAdapter extends MyBaseAdapter<TongzhiShowBean.DataBean> {

        public TongzhiAdapter(Context context, List<TongzhiShowBean.DataBean> dataList) {
            super(context, dataList);
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder holder = null;
            if (convertView == null){
                convertView = LayoutInflater.from(mContext).inflate(R.layout.item_tongzhi,null);
                holder = new ViewHolder();
                holder.delete = (TextView)convertView.findViewById(R.id.delete);
                holder.type = (TextView)convertView.findViewById(R.id.tv_type);
                holder.time = (TextView)convertView.findViewById(R.id.tv_time);
                holder.content = (TextView)convertView.findViewById(R.id.tv_content);
                holder.rl_btn = (RelativeLayout)convertView.findViewById(R.id.rl_btn);
                holder.btn_un_agree = (Button)convertView.findViewById(R.id.btn_un_agree_join);
                holder.btn_agree = (Button)convertView.findViewById(R.id.btn_agree_join);
                convertView.setTag(holder);
            }else {
                holder = (ViewHolder) convertView.getTag();
            }
            final int finalPosition = position;
            final ViewHolder finalholder = holder;
            int type = Integer.valueOf(dataList.get(position).getMsg_type());
            //1 服务费用,2 提醒,3 住费续交,4 申请关注
            switch (type){
                case 1:
                    holder.type.setText("服务费用");
                    holder.type.setTextColor(getResources().getColor(R.color.tongzhi_type_blue));
                    break;
                case 2:
                    holder.type.setText("温馨提醒");
                    holder.type.setTextColor(getResources().getColor(R.color.tongzhi_type_green));
                    break;
                case 3:
                    holder.type.setText("住费续交");
                    holder.type.setTextColor(getResources().getColor(R.color.tongzhi_type_yellow));
                    break;
                case 4:
                    holder.type.setText("申请关注");
                    holder.type.setTextColor(getResources().getColor(R.color.tongzhi_type_red));
                    break;
                default:
                    break;
            }
            holder.time.setText(dataList.get(position).getMsg_time());
            holder.content.setText(dataList.get(position).getMsg_content());
            if (type == 4){
                holder.rl_btn.setVisibility(View.VISIBLE);
                int status = Integer.valueOf(dataList.get(finalPosition).getMsg_status());
                if (status==1){
                    holder.btn_un_agree.setClickable(false);
                    holder.btn_agree.setClickable(false);
                    holder.btn_un_agree.setBackgroundResource(R.drawable.tongzhibg_btn_pressed_conner);
                    holder.btn_agree.setBackgroundResource(R.drawable.tongzhibg_btn_pressed_conner);
                }else {
                    holder.btn_un_agree.setClickable(true);
                    holder.btn_agree.setClickable(true);
                    holder.btn_un_agree.setBackgroundResource(R.drawable.tongzhibg_btn_un_agree_selector);
                    holder.btn_agree.setBackgroundResource(R.drawable.tongzhibg_btn_agree_selector);
                    holder.btn_un_agree.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            // TODO 拒绝
                            map.clear();
                            map.put("user_id",user_id);
                            map.put("request_id",dataList.get(finalPosition).getMsg_send());
                            map.put("elder_id",dataList.get(finalPosition).getMsg_elder_id());
                            requestNet_POST(NetPath.TONGZHI_MSG_UN_AGREE,WHAT_TONGZHI_UN_AGREE,map);
                        }
                    });
                    holder.btn_agree.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            // TODO 同意
                            map.clear();
                            map.put("user_id",user_id);
                            map.put("request_id",dataList.get(finalPosition).getMsg_send());
                            map.put("elder_id",dataList.get(finalPosition).getMsg_elder_id());
                            requestNet_POST(NetPath.TONGZHI_MSG_AGREE,WHAT_TONGZHI_AGREE,map);
                        }
                    });
                }

            }else {
                holder.rl_btn.setVisibility(View.GONE);
            }
            holder.delete.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // TODO 删除
                    map.clear();
                    map.put("msg_id",dataList.get(finalPosition).getMsg_id());
                    requestNet_POST(NetPath.TONGZHI_MSG_DELETE,WHAT_TONGZHI_DELETE,map);
                }
            });


            return convertView;
        }
        public void refresh(List newDataList){
            this.dataList = newDataList;
            notifyDataSetChanged();
        }

        class ViewHolder{

            public TextView type;
            public TextView time;
            public TextView content;
            public Button btn_un_agree;
            public Button btn_agree;
            public RelativeLayout rl_btn;
            public TextView delete;
        }
    }



    private void initToolBar() {
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        TextView title = (TextView) toolbar.findViewById(R.id.title);
        title.setText("系统消息");
        toolbar.setNavigationIcon(R.drawable.jiantou);
        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
    }

    @Override
    public void onBackPressed() {
        super.onBackPressed();
    }
}



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值