美文网首页
Android 全选,取消

Android 全选,取消

作者: 伊泽瑞额 | 来源:发表于2019-04-08 23:21 被阅读0次
  • bean
package com.example.amn.amnadapter;

/**
 * Created by Amn on 2019/4/8.
 */

public class DataInfo {
    public boolean isCheck;

    public String content;

    public String id;
}
  • adapter
package com.example.amn.amnadapter;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Amn on 2019/4/8.
 */

public class TestAdater extends RecyclerView.Adapter<RecyclerView.ViewHolder> {



    private List<DataInfo> mData;
    private Context mContext;
    private LayoutInflater mInflater;


    public TestAdater(Context context, List<DataInfo> datas) {
        this.mContext = context;
        mInflater = LayoutInflater.from(mContext);
        this.mData = new ArrayList<>();
        if (mData != null) {
            this.mData.addAll(datas);
        }
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = mInflater.inflate(R.layout.single_item, parent, false);
        return new TestViewHolder(view);
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {

        final DataInfo datainfo = mData.get(position);
        TestViewHolder testViewHolder= (TestViewHolder) holder;
        testViewHolder.tvItem.setText(datainfo.content);
        final boolean isCheck = datainfo.isCheck;

        if(isCheck){
            //选中
            testViewHolder.ivCheck.setImageResource(R.drawable.xuanzhong);
        }else {
            testViewHolder.ivCheck.setImageResource(R.drawable.weixuanzhong);
        }
        testViewHolder.llLayout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               if(listenner !=null){
                   listenner.onItemClickListener(position,mData);
               }

            }
        });
    }



    /**
     * 刷新数据
     *
     * @param list
     */
    public void nodfiyData(List<DataInfo> list) {
        Log.i("aaa",list.size()+"");
        if (list != null) {
            this.mData=null;
            mData=new ArrayList<>();
            mData.addAll(list);
            Log.i("aaa",mData.size()+"mData");
        }
        Log.i("aaa",mData.size()+"mda");
        notifyDataSetChanged();
    }


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




    public  List<DataInfo> getList(){

        return mData;
    }


    class TestViewHolder extends RecyclerView.ViewHolder{

        ImageView ivCheck;
        TextView tvItem;
        RelativeLayout llLayout;
        public TestViewHolder(View itemView) {
            super(itemView);

            ivCheck = (ImageView) itemView.findViewById(R.id.iv_check);
            tvItem = (TextView) itemView.findViewById(R.id.tv_content);
            llLayout = (RelativeLayout) itemView.findViewById(R.id.rl_llLayout);

        }
    }


    private OnItemOclickListenner listenner;
    public interface OnItemOclickListenner{
        void onItemClickListener(int pos,List<DataInfo>dataInfos);
    }

    public void setOnItemClickListener(OnItemOclickListenner listener){
        this.listenner=listener;
    }
}
  • activity
package com.example.amn.amnadapter;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.widget.Button;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private RecyclerView recyclerview;
    private Button btn;
    private Button btn_upload;
    private List<DataInfo> datas = new ArrayList<>();
    private TestAdater adapter;
    private int index = 0;
    private boolean isAll=false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initData();
        recyclerview= (RecyclerView) findViewById(R.id.rv);
        btn= (Button) findViewById(R.id.btn);
        btn_upload= (Button) findViewById(R.id.btn_upload);
        recyclerview.setLayoutManager(new LinearLayoutManager(this));
        adapter = new TestAdater(this, datas);
        recyclerview.setAdapter(adapter);

        iniEvent();

    }

    private void iniEvent() {
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(!isAll){
                    isAll=true;
                    btn.setText("取消");

                }else {
                    isAll=false;
                    btn.setText("全选");
                }
                setData(isAll);

            }
        });

        adapter.setOnItemClickListener(new TestAdater.OnItemOclickListenner() {
            @Override
            public void onItemClickListener(int pos, List<DataInfo> dataInfos) {
                DataInfo info = dataInfos.get(pos);
                boolean isCheck = info.isCheck;
                if(isCheck){
                    info.isCheck=false;
                }else {
                    info.isCheck=true;
                }
                adapter.nodfiyData(dataInfos);
            }
        });

        btn_upload.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                List<DataInfo> list = adapter.getList();
                Log.i("bb",list.size()+"");
                for (DataInfo info:list){
                    Log.i("bb",info.isCheck+"");
                }
            }
        });
    }

    private void setData(boolean isAll) {
        for (DataInfo data : datas) {
            if(isAll){
                Log.i("bb",data.isCheck+"");
                data.isCheck=true;
            }else{
                data.isCheck=false;
            }
        }
        adapter.nodfiyData(datas);
    }

    private void initData() {
        for (int i = 0; i < 40; i++) {
            DataInfo info = new DataInfo();
            info.isCheck = false;
            info.content = "item" + i;
            info.id = "" + i;
            datas.add(info);
        }
    }

}

相关文章

网友评论

      本文标题:Android 全选,取消

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