package com.example.amn.amnadapter;
/**
* Created by Amn on 2019/4/8.
*/
public class DataInfo {
public boolean isCheck;
public String content;
public String id;
}
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;
}
}
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);
}
}
}
网友评论