android 全选功能,Android 全选,取消

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 {

private List mData;

private Context mContext;

private LayoutInflater mInflater;

public TestAdater(Context context, List 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 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 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,ListdataInfos);

}

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 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 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 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);

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值